New proof-of-concept module (mod_pickupgroup)
Hello folks, I've been working lately with pickup groups and I found some situations where the way the intercept application is presented along with the hash application on the default configs will not suffice the expected behavior on a PBX environment. Of course there are many solutions to this problem and I bet that there are even possible solutions without coding and just dial plan tricks. Nonetheless, a beginner could probably overlook some of those situations and this is the reason why I have started this module. The first problem I am trying to solve is that hash will only hold 1 UUID per group. If you have 2 consecutive calls and want to pick both up, you won't be able to. Simple way to test it. A calls B and leaves B ringing. C calls D and leaves D ringing. E intercepts (in which case it will intercept C). F intercepts same group. Expected behavior is to intercept A, but hash has forgotten about A and therefore you will get reorder tone. By "borrowing" (nicer than stealing) the idea from `eavesdrop all`, I have created mod_pickupgroup as a proof of concept and I would like the community not only to test the module but also to provide input as far as the code is concerned (I am not that proficient with C) and as far as functionality is concerned. The code is currently hosted on Github with the intent to move it somewhere more definitive if the module ends up being useful. The link is here: http://github.com/jmesquita/mod_pickupgroup To compile it, you need to adjust the BASE variable inside the Makefile by pointing it to your latest FreeSWITCH™ source. -- João Mesquita Sent with Sparrow (http://www.sparrowmailapp.com/?sig)
João, After talking to you about this earlier in the week and having a second person making the same assumptions with intercept, I decided to implement the pickup endpoint/app pair. Basically the pickup endpoint is a dummy channel that never answers that you can originate to from anywhere you can place calls, call it alone or place it in a list for a forked dial. originate sofia/internal/100@test.com,pickup/mygroup now the pickup channel will be created alongside the sip channel.
From another call route the call to the application pickup with data "mygroup"
<action application="pickup" data="mygroup"/> When you place that call, your session will be returned from the originate in place of the pickup/mygroup call being placed. It also works with presence so you could assign blf buttons to it. pickup+mygroup The group names can also have an @domain.com for multihoming etc. On Fri, May 4, 2012 at 3:27 PM, Vik Killa <vipkilla@gmail.com> wrote:
+1
_________________________________________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
Tony, I have no words to express how amazed I am for how fast this came down the pipe and how easy it is to understand the code (except for the originate part since that requires a bit more than what I can handle right now). Like usual, thank you for the help. The first thing I tried doing when I saw the module is wikify it, but someone (djbinter, thanks) got to it before I had the chance. The next thing was to make it work on the default configs so I can propose a patch so that the feature can be properly demonstrated. While at it, I've found a couple of things details that I am reporting to Jira. I will try to come up with a patch for those as well, but it might be a bit over my head. Just let me know how I can help as usual and I will get it done ASAP. Once again, thanks. Regards, -- João Mesquita Sent with Sparrow (http://www.sparrowmailapp.com/?sig) On Friday, May 4, 2012 at 11:11 PM, Anthony Minessale wrote:
João,
After talking to you about this earlier in the week and having a second person making the same assumptions with intercept, I decided to implement the pickup endpoint/app pair.
Basically the pickup endpoint is a dummy channel that never answers that you can originate to from anywhere you can place calls, call it alone or place it in a list for a forked dial.
originate sofia/internal/100@test.com (mailto:100@test.com),pickup/mygroup
now the pickup channel will be created alongside the sip channel.
From another call route the call to the application pickup with data "mygroup"
<action application="pickup" data="mygroup"/>
When you place that call, your session will be returned from the originate in place of the pickup/mygroup call being placed.
It also works with presence so you could assign blf buttons to it. pickup+mygroup
The group names can also have an @domain.com (http://domain.com) for multihoming etc.
On Fri, May 4, 2012 at 3:27 PM, Vik Killa <vipkilla@gmail.com (mailto:vipkilla@gmail.com)> wrote:
+1
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org (mailto: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 (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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire
AIM: anthm MSN:anthony_minessale@hotmail.com (mailto:anthony_minessale@hotmail.com) GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com (mailto:anthony.minessale@gmail.com) IRC: irc.freenode.net (http://irc.freenode.net) #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org (mailto:888@conference.freeswitch.org) googletalk:conf+888@conference.freeswitch.org (mailto:conf+888@conference.freeswitch.org) pstn:+19193869900
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org (mailto: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 (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
YAY! Thanks Tony! João, can you handle the WikiTax on this one? Thanks Ken On 5/5/12 7:24 PM, "João Mesquita" <jmesquita@freeswitch.org> wrote:
Tony,
I have no words to express how amazed I am for how fast this came down the pipe and how easy it is to understand the code (except for the originate part since that requires a bit more than what I can handle right now). Like usual, thank you for the help.
The first thing I tried doing when I saw the module is wikify it, but someone (djbinter, thanks) got to it before I had the chance.
The next thing was to make it work on the default configs so I can propose a patch so that the feature can be properly demonstrated. While at it, I've found a couple of things details that I am reporting to Jira. I will try to come up with a patch for those as well, but it might be a bit over my head. Just let me know how I can help as usual and I will get it done ASAP.
Once again, thanks.
Regards,
Awesome! Tony: thanks again for adding a cool new feature so quickly João: thanks for writing the proof-of-concept code that jumpstarted the process Dorn B: thanks for jumping all over the wiki stuff so quickly! It is much appreciated. -MC On Sat, May 5, 2012 at 5:24 PM, João Mesquita <jmesquita@freeswitch.org>wrote:
Tony,
I have no words to express how amazed I am for how fast this came down the pipe and how easy it is to understand the code (except for the originate part since that requires a bit more than what I can handle right now). Like usual, thank you for the help.
The first thing I tried doing when I saw the module is wikify it, but someone (djbinter, thanks) got to it before I had the chance.
The next thing was to make it work on the default configs so I can propose a patch so that the feature can be properly demonstrated. While at it, I've found a couple of things details that I am reporting to Jira. I will try to come up with a patch for those as well, but it might be a bit over my head. Just let me know how I can help as usual and I will get it done ASAP.
Once again, thanks.
participants (5)
-
Anthony Minessale
-
João Mesquita
-
Ken Rice
-
Michael Collins
-
Vik Killa