[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 16:32:47 CDT 2019
[ https://issues.asterisk.org/jira/browse/ASTERISK-28446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=247367#comment-247367 ]
David Brillert commented on ASTERISK-28446:
-------------------------------------------
If this is in internal queue and extended community support why was it closed as 'fixed'?
> 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