hints with 2+ devices that include ONHOLD
Review Request #254 - Created May 26, 2009 and submitted
This is a community patch I cleaned up and tested. Below is the reporter's, p_lidheimer, description of the issue pulled directly from issue #15057. ---------------------------- If you have a hint with two (or more) devices or a device and a custom devstate that includes ONHOLD, you get unexpected results. Two examples: exten => 222,hint,SIP/222&SIP/211 exten => 333,hint,Custom:DND333&SIP/333 The following results are inconsistent as they should all return ONHOLD: ONHOLD & IDLE = IDLE ONHOLD & UNAVAILABLE => UNAVAILABLE ONHOLD & UNKNOWN => IDLE ONHOLD & INVALID => IDLE Per Russell Bryant's response on the mailing list: "I would agree that this is a bug. I would expect that combination of states to result in an OnHold state."
I have tested the patch and can verify the situations in the description all result in ONHOLD.
Posted (May 26, 2009, 12:23 p.m.)
Review request changed
Updated (May 27, 2009, 8:52 a.m.)
update with p_lindheimer's changes. --------description of update pulled directly from notes on issue #15057 There were some issues pointed out in the review which uncovered some more in further testing, so attaching two new patches that should now exhibit the following behavior: BUSY & ONHOLD => BUSY INUSE & ONHOLD => INUSE ONHOLD & RINGING => RINGINUSE this opens up a question, should the last return RINGINUSE or is a new state required to return RINGONHOLD? (and if we have ONHOLD&RINGING&INUSE do we return all three?) My opinion would be RINGINUSE is appropriate...
Posted (May 28, 2009, 4:52 a.m.)
The changes here look fine. I think that it would be a great idea to write a test_devstate module that exercises the devstate_aggregate API with a bunch of different combinations of states and verifies that we get the expected results.