Routing inbound call to multiple extentions
Hi All, At witt's end on this, how do I get a inbound call to go to multiple extension? I've tried groups but so far no avail I using a spa 3102 as a analog adapter that is configured to rout calls to extension 1000, I want FS to automatically forward this call to extensions 1001-1009. Here is an extract from default.xml (/usr/local/freeswitch/conf/directory) <group name="frontoffice"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. <user id="1000" type="pointer"/> --> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group>
you forgot to specify how exactly you route the call to this group.
________________________________ From: Todd Bailey <toddb@toddbailey.net> To: freeswitch <freeswitch-users@lists.freeswitch.org> Sent: Saturday, July 7, 2012 8:19 PM Subject: [Freeswitch-users] Routing inbound call to multiple extentions
Hi All,
At witt's end on this, how do I get a inbound call to go to multiple extension?
I've tried groups but so far no avail
I using a spa 3102 as a analog adapter that is configured to rout calls to extension 1000, I want FS to automatically forward this call to extensions 1001-1009.
Here is an extract from default.xml (/usr/local/freeswitch/conf/directory)
<group name="frontoffice"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. <user id="1000" type="pointer"/> --> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group>
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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
I'm using a cisco/linksys spa 3102 as a analog adapter that is configured to route calls to extension 1000. So an incoming call goes to voip extension 1000, & I want all calls on this ext to be forwarded to 1001-1009. Does this help answer your question? BTW: I'm being side tracked after a power failure took out a partition. So much for having a ups to cya. Anyway a 6tb jfs linux partition is probably lost, so I won't have a lot of time to spend with FreeSwitch issues. On Sun, 2012-07-08 at 04:54 -0700, Stanislav Sinyagin wrote:
you forgot to specify how exactly you route the call to this group.
______________________________________________________________ From: Todd Bailey <toddb@toddbailey.net> To: freeswitch <freeswitch-users@lists.freeswitch.org> Sent: Saturday, July 7, 2012 8:19 PM Subject: [Freeswitch-users] Routing inbound call to multiple extentions
Hi All,
At witt's end on this, how do I get a inbound call to go to multiple extension?
I've tried groups but so far no avail
I using a spa 3102 as a analog adapter that is configured to rout calls to extension 1000, I want FS to automatically forward this call to extensions 1001-1009.
Here is an extract from default.xml (/usr/local/freeswitch/conf/directory)
<group name="frontoffice"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory.
<user id="1000" type="pointer"/> --> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group>
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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 group_call function is designed exactly for that: http://wiki.freeswitch.org/wiki/XML_User_Directory_Guide
________________________________ From: Todd Bailey <toddb@toddbailey.net> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Monday, July 9, 2012 7:44 AM Subject: Re: [Freeswitch-users] Routing inbound call to multiple extentions
I'm using a cisco/linksys spa 3102 as a analog adapter that is configured to route calls to extension 1000.
So an incoming call goes to voip extension 1000, & I want all calls on this ext to be forwarded to 1001-1009.
Does this help answer your question?
BTW: I'm being side tracked after a power failure took out a partition. So much for having a ups to cya. Anyway a 6tb jfs linux partition is probably lost, so I won't have a lot of time to spend with FreeSwitch issues.
On Sun, 2012-07-08 at 04:54 -0700, Stanislav Sinyagin wrote:
you forgot to specify how exactly you route the call to this group.
______________________________________________________________ From: Todd Bailey <toddb@toddbailey.net> To: freeswitch <freeswitch-users@lists.freeswitch.org> Sent: Saturday, July 7, 2012 8:19 PM Subject: [Freeswitch-users] Routing inbound call to multiple extentions Hi All, At witt's end on this, how do I get a inbound call to go to multiple extension? I've tried groups but so far no avail I using a spa 3102 as a analog adapter that is configured to rout calls to extension 1000, I want FS to automatically forward this call to extensions 1001-1009. Here is an extract from default.xml (/usr/local/freeswitch/conf/directory) <group name="frontoffice"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. <user id="1000" type="pointer"/> --> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group> _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com Join Us At ClueCon - Aug 7-9, 2012 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 _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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
I think what is missing in this wiki is it doesn't explicitly state what file(s) and in what folder(s) needs to be edited. here is an extract of the section that I suspect is what I need to follow Groups A group is a logical collection of users that FreeSWITCH can use to bridge calls in a serial or parallel fashion, depending on the arguments to the group_call application. Using groups is optional -- you can put your users straight into the domain section if you desire. This is specially useful if you use mod_xml_curl to provide the user directory to FreeSWITCH and want to group some users in a logical structure. The following group '200' groups four users. It's interesting to notice the "dial-string" param, which is used to bridge the calls to those users. Users 1000 and 1001 will use the default "dial-string" while user 2014 uses a loopback channel so FreeSWITCH can actually query the dialplan to figure out how to reach that user (this also works for external numbers through OpenZAP and gateways): type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. <document type="freeswitch/xml"> <section name="directory"> <domain name="sip.example.com"> <users> <user id="1000"> <params> <param name="dial-string" value="{presence_id=${dialed_user}@ ${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> <user id="1001"> <params> <param name="dial-string" value="{presence_id=${dialed_user}@ ${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> </users> <groups> <group name="200"> <users> <user id="2014"> <params> <param name="dial-string" value="loopback/2014/default/XML"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> <user id="1000" type="pointer"/> <user id="1001" type="pointer"/> </users> </group> </groups> </domain> </section> </document> The dialplan for the above group can be defined like this: <extension name="Group 200"> <condition field="destination_number" expression="200"> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="set" data="originate_continue_on_timeout=true"/> <action application="set" data="call_timeout=15"/> <action application="bridge" data="${group_call(200@ ${domain_name}+F)}"/> <action application="transfer" data="200 XML default"/> <action application="hangup"/> </condition> </extension> The extension 200 will ring all the users defined in the user directory for group 200 in a serial fashion (specified by the +F argument, if you want to ring all the users at once use the +A argument) for 15 seconds, then it will transfer the call to the same group again so the call will ring the group infinitely. To explain the variables set prior to the bridge: The hangup_after_bridge is set to true for this effect: if the bridge is successfully answered and the B-leg later hangs up, the A-leg will also be hung up. The continue_on_fail is set to true for this: if the bridge fails, dialplan execution will continue and the transfer will be executed. The originate_continue_on_timeout is set to true for this: if the bridge's dial string specifies several destinations separated by the "|" (this is for failover), the bridge will time out on an unanswered destination and will attempt the next specified destination. Without originate_continue_on_timeout set to true, the bridge will time out on the first destination it tries and the bridge itself will fail. (In the example above, the bridge string is generated by group_call with the +F option; this specifies a dial string with all the group's destinations separated by "|". So originate_continue_on_timeout needs to be set to true for serial calling behavior.) The call_timeout is set so that the bridge attempt to a destination that goes unanswered will time out. NOTE: If the destination sends early media, the bridge will be answered (pre-answered) and will NOT time out! To time out a bridge attempt to a destination sending early media, set ignore_early_media to true. The dialplan for user 2014, which in this example happens to be terminated through a gateway defined via mod_lcr, can be defined like this: <extension name="Extension 2014"> <condition field="destination_number" expression="2014"> <action application="lcr" data="2014"/> <action application="set" data="dialed_ext=${lcr_auto_route}"/> <action application="export" data="dialed_ext= ${lcr_auto_route}"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="call_timeout=120"/> <action application="bridge" data="${lcr_auto_route}"/> <action application="hangup"/> </condition> </extension> On Mon, 2012-07-09 at 01:49 -0700, Stanislav Sinyagin wrote:
That may be true, because you don't always know what files/folders to edit. Technically, you may not even need files/folders because you are using mod_xml_curl or something like that. However, we could add a sentence like: "If you are using the default 'vanilla' configs, the groups are defined in conf/directory/default.xml and the dialplan entries are found in conf/dialplan/default.xml" Would that help? If so, please add that text as I'm positive that it's correct. If you are having trouble with wiki editing let me know and I'll be happy to help. At some point one of these days I'm gonna do screencast w/ training on how to do wiki editing... -MC On Mon, Jul 9, 2012 at 10:08 AM, Todd Bailey <toddb@toddbailey.net> wrote:
I think what is missing in this wiki is it doesn't explicitly state what file(s) and in what folder(s) needs to be edited.
here is an extract of the section that I suspect is what I need to follow
Groups
A group is a logical collection of users that FreeSWITCH can use to bridge calls in a serial or parallel fashion, depending on the arguments to the group_call application. Using groups is optional -- you can put your users straight into the domain section if you desire.
This is specially useful if you use mod_xml_curl to provide the user directory to FreeSWITCH and want to group some users in a logical structure. The following group '200' groups four users. It's interesting to notice the "dial-string" param, which is used to bridge the calls to those users. Users 1000 and 1001 will use the default "dial-string" while user 2014 uses a loopback channel so FreeSWITCH can actually query the dialplan to figure out how to reach that user (this also works for external numbers through OpenZAP and gateways):
type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory.
<document type="freeswitch/xml"> <section name="directory"> <domain name="sip.example.com"> <users> <user id="1000"> <params> <param name="dial-string" value="{presence_id=${dialed_user}@ ${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> <user id="1001"> <params> <param name="dial-string" value="{presence_id=${dialed_user}@ ${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> </users> <groups> <group name="200"> <users> <user id="2014"> <params> <param name="dial-string" value="loopback/2014/default/XML"/> </params> <variables> <variable name="user_context" value="default"/> </variables> </user> <user id="1000" type="pointer"/> <user id="1001" type="pointer"/> </users> </group> </groups> </domain> </section> </document>
The dialplan for the above group can be defined like this:
<extension name="Group 200"> <condition field="destination_number" expression="200"> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="set" data="originate_continue_on_timeout=true"/> <action application="set" data="call_timeout=15"/> <action application="bridge" data="${group_call(200@ ${domain_name}+F)}"/> <action application="transfer" data="200 XML default"/> <action application="hangup"/> </condition> </extension>
The extension 200 will ring all the users defined in the user directory for group 200 in a serial fashion (specified by the +F argument, if you want to ring all the users at once use the +A argument) for 15 seconds, then it will transfer the call to the same group again so the call will ring the group infinitely.
To explain the variables set prior to the bridge:
The hangup_after_bridge is set to true for this effect: if the bridge is successfully answered and the B-leg later hangs up, the A-leg will also be hung up.
The continue_on_fail is set to true for this: if the bridge fails, dialplan execution will continue and the transfer will be executed.
The originate_continue_on_timeout is set to true for this: if the bridge's dial string specifies several destinations separated by the "|" (this is for failover), the bridge will time out on an unanswered destination and will attempt the next specified destination. Without originate_continue_on_timeout set to true, the bridge will time out on the first destination it tries and the bridge itself will fail. (In the example above, the bridge string is generated by group_call with the +F option; this specifies a dial string with all the group's destinations separated by "|". So originate_continue_on_timeout needs to be set to true for serial calling behavior.)
The call_timeout is set so that the bridge attempt to a destination that goes unanswered will time out. NOTE: If the destination sends early media, the bridge will be answered (pre-answered) and will NOT time out! To time out a bridge attempt to a destination sending early media, set ignore_early_media to true.
The dialplan for user 2014, which in this example happens to be terminated through a gateway defined via mod_lcr, can be defined like this:
<extension name="Extension 2014"> <condition field="destination_number" expression="2014"> <action application="lcr" data="2014"/> <action application="set" data="dialed_ext=${lcr_auto_route}"/> <action application="export" data="dialed_ext= ${lcr_auto_route}"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="call_timeout=120"/> <action application="bridge" data="${lcr_auto_route}"/> <action application="hangup"/> </condition> </extension>
On Mon, 2012-07-09 at 01:49 -0700, Stanislav Sinyagin wrote:
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
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
Hello All, Is there an easy way to boost volume levels going to a ip phone? I have the volume set to max and the volume levels is still very quiet? I already adjusted the ata a spa3102 to boost the pstn to spa gain to max which helped a little but not by much The primary phones are polycom 501's thanks
There's not a whole lot you have left that you can do. There is one thing to try: http://wiki.freeswitch.org/wiki/Mod_commands#uuid_audio The max you can set it to is 4 but I suppose that's better than what you've currently got. -MC On Wed, Jan 30, 2013 at 9:49 PM, Todd Bailey <toddb@toddbailey.net> wrote:
Hello All,
Is there an easy way to boost volume levels going to a ip phone? I have the volume set to max and the volume levels is still very quiet? I already adjusted the ata a spa3102 to boost the pstn to spa gain to max which helped a little but not by much
The primary phones are polycom 501's
thanks
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
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
-- Michael S Collins Twitter: @mercutioviz http://www.FreeSWITCH.org http://www.ClueCon.com http://www.OSTAG.org
HI Todd, Based on this sample: http://wiki.freeswitch.org/wiki/XML_User_Directory_Guide#Groups and your directory data it looks like you need a dialplan something like this: <extension name="Group 200"> <condition field="destination_number" expression="200"> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="set" data="originate_continue_on_timeout=true"/> <action application="set" data="call_timeout=15"/> <action application="bridge" data="${group_call(frontoffice @${domain_name}+F)}"/> Maybe IVR goes here??? <action application="hangup"/> </condition> </extension> What is your dial plan entry? Sean -----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Todd Bailey Sent: Saturday, July 07, 2012 2:19 PM To: freeswitch Subject: [Freeswitch-users] Routing inbound call to multiple extentions Hi All, At witt's end on this, how do I get a inbound call to go to multiple extension? I've tried groups but so far no avail I using a spa 3102 as a analog adapter that is configured to rout calls to extension 1000, I want FS to automatically forward this call to extensions 1001-1009. Here is an extract from default.xml (/usr/local/freeswitch/conf/directory) <group name="frontoffice"> <users> <!-- type="pointer" is a pointer so you can have the same user in multiple groups. It basically means to keep searching for the user in the directory. <user id="1000" type="pointer"/> --> <user id="1001" type="pointer"/> <user id="1002" type="pointer"/> <user id="1003" type="pointer"/> <user id="1004" type="pointer"/> <user id="1005" type="pointer"/> <user id="1006" type="pointer"/> <user id="1007" type="pointer"/> <user id="1008" type="pointer"/> <user id="1009" type="pointer"/> </users> </group> _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com Join Us At ClueCon - Aug 7-9, 2012 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 (4)
-
Michael Collins
-
Sean Devoy
-
Stanislav Sinyagin
-
Todd Bailey