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

David Vossel dvossel at digium.com
Tue Jun 30 11:04:07 CDT 2009


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

(Updated 2009-06-30 11:04:07.396455)


Review request for Asterisk Developers and Mark Michelson.


Changes
-------

Update ports ast_devstate_aggregate to 1.4 to keep branches in sync.  Same logic applies.


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:          Idle 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:          Idle Dev1:     Invalid	Dev2:     Unknown
 Exten:          Idle 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:          Idle 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:          Idle 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