Review Board 1.7.16


hints with 2+ devices that include ONHOLD

Review Request #254 - Created May 26, 2009 and submitted

David Vossel
15057
Reviewers
asterisk-dev
Asterisk
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.
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.

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.