[asterisk-bugs] [JIRA] (ASTERISK-28446) Asterisk NOTIFY NOT_INUSE and UNAVAILABLE both send same XML dialog <state>terminated</state>

David Brillert (JIRA) noreply at issues.asterisk.org
Wed Jun 12 09:29:47 CDT 2019


David Brillert created ASTERISK-28446:
-----------------------------------------

             Summary: Asterisk NOTIFY NOT_INUSE and UNAVAILABLE both send same XML dialog <state>terminated</state>
                 Key: ASTERISK-28446
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28446
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Channels/chan_sip/Interoperability
    Affects Versions: 13.27.0
            Reporter: David Brillert


I confirmed the bad behavior with Yealink product management.
A Yealink phone configured to subscribe to asterisk hint for devstate will not change the BLF light correctly.
Yealink supports:
BLF = Green/NOT_INUSE
BLF= OFF/UNAVAILABLE

But the lights don't function in the desired manner because Asterisk sends the same XML dialog  <state>terminated</state> for both device states. So the Yealink and all other vendors result in:
BLF = Green/NOT_INUSE
BLF= Green/UNAVAILABLE

Here is the bit of Asterisk source code responsible for the problem:
Asterisk source code:
if (data->state & AST_EXTENSION_RINGING && sip_cfg.notifyringing) {
                       ast_str_append(tmp, 0, "<state>early</state>\n");
               } else if (data->state & (AST_EXTENSION_RINGING | AST_EXTENSION_INUSE | AST_EXTENSION_BUSY |
                                         AST_EXTENSION_ONHOLD) || data->presence_state == AST_PRESENCE_DND) {
                       ast_str_append(tmp, 0, "<state>confirmed</state>\n");
               } else {
                       ast_str_append(tmp, 0, "<state>terminated</state>\n");
               }
 
This is from chan_sip
So Asterisk always sends terminated if state is "UNAVAILABLE" and by the same if statement "IDLE" will also result in XML <state>terminated</state>

Yealink expects to see a 480 temporarily unavailable response for UNAVAILABLE

Here is a summary of XML responses by devstate from Asterisk 13.27
RINGING <state>early</state>
ONHOLD <state>confirmed</state>
BUSY <state>confirmed</state>
UNAVAILABLE <state>terminated</state>
NOT_INUSE <state>terminated</state>



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list