[asterisk-dev] [Code Review] Mapping of extension states

David Vossel dvossel at digium.com
Wed Jul 1 11:46:30 CDT 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/301/
-----------------------------------------------------------

(Updated 2009-07-01 11:46:30.460244)


Review request for Asterisk Developers and Mark Michelson.


Changes
-------

Updated with new column representing Combined Device State. Checked new test results with previous test results.

Sample output with new column.
 Exten:   Unavailable CombinedDevice: Unavailable	Dev1:     Unknown	Dev2:     Unknown
 Exten:          Idle CombinedDevice:  Not in use	Dev1:  Not in use	Dev2:     Unknown
 Exten:         InUse CombinedDevice:      In use	Dev1:      In use	Dev2:     Unknown
 Exten:          Busy CombinedDevice:        Busy	Dev1:        Busy	Dev2:     Unknown


Summary
-------

Mapping extension states is tricky.  This patch fixes a few issues with incorrect extension states and adds a cli command to display all possible state mappings.  Look at the test output below and confirm each mapped extension state for the two device states is as expected.


This addresses bug 15413.
    https://issues.asterisk.org/view.php?id=15413


Diffs (updated)
-----

  /branches/1.4/include/asterisk/devicestate.h 204194 
  /branches/1.4/include/asterisk/pbx.h 204194 
  /branches/1.4/main/devicestate.c 204194 
  /branches/1.4/main/pbx.c 204194 

Diff: http://reviewboard.digium.com/r/301/diff


Testing
-------

 Exten:   Unavailable Dev1:     Unknown	Dev2:     Unknown
 Exten:          Idle Dev1:  Not in use	Dev2:     Unknown
 Exten:         InUse Dev1:      In use	Dev2:     Unknown
 Exten:          Busy Dev1:        Busy	Dev2:     Unknown
 Exten:   Unavailable Dev1:     Invalid	Dev2:     Unknown
 Exten:   Unavailable Dev1: Unavailable	Dev2:     Unknown
 Exten:       Ringing Dev1:     Ringing	Dev2:     Unknown
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:     Unknown
 Exten:          Hold Dev1:     On Hold	Dev2:     Unknown
 Exten:          Idle Dev1:     Unknown	Dev2:  Not in use
 Exten:          Idle Dev1:  Not in use	Dev2:  Not in use
 Exten:         InUse Dev1:      In use	Dev2:  Not in use
 Exten:          Busy Dev1:        Busy	Dev2:  Not in use
 Exten:          Idle Dev1:     Invalid	Dev2:  Not in use
 Exten:          Idle Dev1: Unavailable	Dev2:  Not in use
 Exten:       Ringing Dev1:     Ringing	Dev2:  Not in use
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:  Not in use
 Exten:          Hold Dev1:     On Hold	Dev2:  Not in use
 Exten:         InUse Dev1:     Unknown	Dev2:      In use
 Exten:         InUse Dev1:  Not in use	Dev2:      In use
 Exten:         InUse Dev1:      In use	Dev2:      In use
 Exten:          Busy Dev1:        Busy	Dev2:      In use
 Exten:         InUse Dev1:     Invalid	Dev2:      In use
 Exten:         InUse Dev1: Unavailable	Dev2:      In use
 Exten: InUse&Ringing Dev1:     Ringing	Dev2:      In use
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:      In use
 Exten:         InUse Dev1:     On Hold	Dev2:      In use
 Exten:          Busy Dev1:     Unknown	Dev2:        Busy
 Exten:          Busy Dev1:  Not in use	Dev2:        Busy
 Exten:          Busy Dev1:      In use	Dev2:        Busy
 Exten:          Busy Dev1:        Busy	Dev2:        Busy
 Exten:          Busy Dev1:     Invalid	Dev2:        Busy
 Exten:          Busy Dev1: Unavailable	Dev2:        Busy
 Exten: InUse&Ringing Dev1:     Ringing	Dev2:        Busy
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:        Busy
 Exten:          Busy Dev1:     On Hold	Dev2:        Busy
 Exten:   Unavailable Dev1:     Unknown	Dev2:     Invalid
 Exten:          Idle Dev1:  Not in use	Dev2:     Invalid
 Exten:         InUse Dev1:      In use	Dev2:     Invalid
 Exten:          Busy Dev1:        Busy	Dev2:     Invalid
 Exten:   Unavailable Dev1:     Invalid	Dev2:     Invalid
 Exten:   Unavailable Dev1: Unavailable	Dev2:     Invalid
 Exten:       Ringing Dev1:     Ringing	Dev2:     Invalid
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:     Invalid
 Exten:          Hold Dev1:     On Hold	Dev2:     Invalid
 Exten:   Unavailable Dev1:     Unknown	Dev2: Unavailable
 Exten:          Idle Dev1:  Not in use	Dev2: Unavailable
 Exten:         InUse Dev1:      In use	Dev2: Unavailable
 Exten:          Busy Dev1:        Busy	Dev2: Unavailable
 Exten:   Unavailable Dev1:     Invalid	Dev2: Unavailable
 Exten:   Unavailable Dev1: Unavailable	Dev2: Unavailable
 Exten:       Ringing Dev1:     Ringing	Dev2: Unavailable
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2: Unavailable
 Exten:          Hold Dev1:     On Hold	Dev2: Unavailable
 Exten:       Ringing Dev1:     Unknown	Dev2:     Ringing
 Exten:       Ringing Dev1:  Not in use	Dev2:     Ringing
 Exten: InUse&Ringing Dev1:      In use	Dev2:     Ringing
 Exten: InUse&Ringing Dev1:        Busy	Dev2:     Ringing
 Exten:       Ringing Dev1:     Invalid	Dev2:     Ringing
 Exten:       Ringing Dev1: Unavailable	Dev2:     Ringing
 Exten:       Ringing Dev1:     Ringing	Dev2:     Ringing
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:     Ringing
 Exten: InUse&Ringing Dev1:     On Hold	Dev2:     Ringing
 Exten: InUse&Ringing Dev1:     Unknown	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:  Not in use	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:      In use	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:        Busy	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:     Invalid	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1: Unavailable	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:     Ringing	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:  Ring+Inuse
 Exten: InUse&Ringing Dev1:     On Hold	Dev2:  Ring+Inuse
 Exten:          Hold Dev1:     Unknown	Dev2:     On Hold
 Exten:          Hold Dev1:  Not in use	Dev2:     On Hold
 Exten:         InUse Dev1:      In use	Dev2:     On Hold
 Exten:          Busy Dev1:        Busy	Dev2:     On Hold
 Exten:          Hold Dev1:     Invalid	Dev2:     On Hold
 Exten:          Hold Dev1: Unavailable	Dev2:     On Hold
 Exten: InUse&Ringing Dev1:     Ringing	Dev2:     On Hold
 Exten: InUse&Ringing Dev1:  Ring+Inuse	Dev2:     On Hold
 Exten:          Hold Dev1:     On Hold	Dev2:     On Hold


Thanks,

David




More information about the asterisk-dev mailing list