Hi, Back on this topic. 2011/4/14 Mathieu Parent <math.parent@gmail.com>:
Hello,
*Context*: ---------
I want to implement the following in mod_skinny (FS-3048 and FS-3047) in a way shared with other endpoints modules: - call forwarding[cfw], - DND and ring policies
I will focus on cfw first: as Marc Olivier suggested, this is more common in SIP.
*Call forwarding*: --------- There are three main kinds of forwarding: - forward all (immediately) - forward when line is busy - forward when no answer
We should also store for each the state of the forwarding (enabled or not).
I think a reasonable default here would be: - to forward "no answer" to voicemail (and enabled) - to forward busy to voicemail (but disabled) - to forward all to "" (and disabled)
We also should define what a busy line is, especially on shared lines (perhaps define a busy threshold, defaulting to 1).
Call forwarding should be implemented in dialplan, but endpoint modules should know when a call is forwarded (the bridge event is probably sufficient).
(snip)
*Proposal*: ---------
I propose to use hashes to store the various data:
<action application="hash" data="insert/${realm}/${extension}/${data}"/>
Where ${realm} is one of: - ${domain_name}-forward-{all,busy,noanswer}-destination: a destination number - ${domain_name}-forward-{all,busy,noanswer}-status: true/false - ${domain_name}-busy-threshold: [0-9]+
(...)
The dialplan should be enhanced to manage forwarding. The endpoint modules should be enhanced to manage forwarding (notify that the call has been forwarded) and ring policies.
Does this makes sense? How can we improve it?
I have doubt about mod_hash because it doesn't propagate hashes on remote servers (it does for limits only). Should I use mod_db instead?
*Next steps*: --------- - proposal discussion <-- we are still here ;-) - forward-* dialplan implementation (I need help here, I am not an dialplan expert) - mod_skinny forward-* implementation FS-3048 - mod_skinny ring policies implementation FS-3047 - other endpoints implementation
Regards
Mathieu
[cfw]: http://en.wikipedia.org/wiki/Call_forwarding [dnd]: http://en.wikipedia.org/wiki/Do_Not_Disturb_%28telecommunications%29
-- Mathieu