Feature request: adding / removing members to/from Huntgroups
Posted: 10 Jul 2019 07:05
I'm in a bit of a bind here.. I have an application managing huntgroup membership. That is.. two applications really.
Given that you update the members by writing the member collection, I have to ensure I'm not making operations on the same huntgroup concurrently. That's no problem as long as everything runs in the same context. Unfortunately, that's no the case.. there's two components running on two different machines and they don't talk to each other.
Thus, having two additional tags, addMembers and removeMembers would be useful.. you could either supply the members collection as usual which replaces the existing member collection, or if using addMembers, removeMembers, you could add/remove members. So, if at the same time compoment A adds a member X and component B removes a member Y, the end result will contain member X and Y will have been removed - regardless of timing. As is now, if timing works against me, I might end up having removed Y but X is not present in the group because A sends
members: { X, Y, Z }
and B sends
members { X, Z } (having loaded the huntgroup when A had not yet updated the group)
Cisco uses this mechanism for a bunch of properties in their AXL API and it is very handy (and cuts down on traffic as well since you only need to send added / removed numbers, not the entire collection of members).
Given that you update the members by writing the member collection, I have to ensure I'm not making operations on the same huntgroup concurrently. That's no problem as long as everything runs in the same context. Unfortunately, that's no the case.. there's two components running on two different machines and they don't talk to each other.
Thus, having two additional tags, addMembers and removeMembers would be useful.. you could either supply the members collection as usual which replaces the existing member collection, or if using addMembers, removeMembers, you could add/remove members. So, if at the same time compoment A adds a member X and component B removes a member Y, the end result will contain member X and Y will have been removed - regardless of timing. As is now, if timing works against me, I might end up having removed Y but X is not present in the group because A sends
members: { X, Y, Z }
and B sends
members { X, Z } (having loaded the huntgroup when A had not yet updated the group)
Cisco uses this mechanism for a bunch of properties in their AXL API and it is very handy (and cuts down on traffic as well since you only need to send added / removed numbers, not the entire collection of members).