--- main/pbx.c.orig 2009-05-07 18:51:47.000000000 -0700 +++ main/pbx.c 2009-05-07 19:04:18.000000000 -0700 @@ -1918,8 +1918,8 @@ { char hint[AST_MAX_EXTENSION]; char *cur, *rest; - int allunavailable = 1, allbusy = 1, allfree = 1, allonhold = 1; - int busy = 0, inuse = 0, ring = 0; + int allunavailable = 1, allbusy = 1, allfree = 1; + int busy = 0, inuse = 0, ring = 0, onhold = 0; if (!e) return -1; @@ -1933,48 +1933,42 @@ case AST_DEVICE_NOT_INUSE: allunavailable = 0; allbusy = 0; - allonhold = 0; break; case AST_DEVICE_INUSE: inuse = 1; allunavailable = 0; allfree = 0; - allonhold = 0; break; case AST_DEVICE_RINGING: ring = 1; allunavailable = 0; allfree = 0; - allonhold = 0; break; case AST_DEVICE_RINGINUSE: inuse = 1; ring = 1; allunavailable = 0; allfree = 0; - allonhold = 0; break; case AST_DEVICE_ONHOLD: allunavailable = 0; allfree = 0; + onhold = 1; break; case AST_DEVICE_BUSY: allunavailable = 0; allfree = 0; - allonhold = 0; busy = 1; break; case AST_DEVICE_UNAVAILABLE: case AST_DEVICE_INVALID: allbusy = 0; allfree = 0; - allonhold = 0; break; default: allunavailable = 0; allbusy = 0; allfree = 0; - allonhold = 0; } } @@ -1986,14 +1980,14 @@ return AST_EXTENSION_INUSE; if (allfree) return AST_EXTENSION_NOT_INUSE; - if (allonhold) - return AST_EXTENSION_ONHOLD; if (allbusy) return AST_EXTENSION_BUSY; if (allunavailable) return AST_EXTENSION_UNAVAILABLE; if (busy) return AST_EXTENSION_INUSE; + if (onhold) + return AST_EXTENSION_ONHOLD; return AST_EXTENSION_NOT_INUSE; }