[asterisk-bugs] [JIRA] (ASTERISK-29263) PJSIP

Flamur Dervishi (JIRA) noreply at issues.asterisk.org
Mon Jan 25 09:13:59 CST 2021


Flamur Dervishi created ASTERISK-29263:
------------------------------------------

             Summary: PJSIP 
                 Key: ASTERISK-29263
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29263
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: pjproject/pjsip
    Affects Versions: 16.15.0
         Environment: debian x64
            Reporter: Flamur Dervishi
            Severity: Minor


We were experiencing a strange behaviour with the device state when using 'devicestate_busy_at' option.

With 'devicestate_busy_at' set to 2, after an endpoint would receive 2 calls, its device state would be set to 'Busy'. However when a 3rd call is in play, the device state changed to 'In use', when it still needs to be 'Busy' in respect of 'devicestate_busy_at' value.

After some investigation in the 'chan_pjsip.c' file, in the function 'chan_pjsip_devicestate' we noticed that the condition to check  if the 'devicestate_busy_at' is reached is wrong.

static int chan_pjsip_devicestate(const char *data)
{
	...

	if (endpoint->devicestate_busy_at && (inuse == endpoint->devicestate_busy_at)) {
		state = AST_DEVICE_BUSY;
	} else if (ast_devstate_aggregate_result(&aggregate) != AST_DEVICE_INVALID) {
		state = ast_devstate_aggregate_result(&aggregate);
	}

	...
}

Should be:

static int chan_pjsip_devicestate(const char *data)
{
	...

	if (endpoint->devicestate_busy_at && (inuse >= endpoint->devicestate_busy_at)) {
		state = AST_DEVICE_BUSY;
	} else if (ast_devstate_aggregate_result(&aggregate) != AST_DEVICE_INVALID) {
		state = ast_devstate_aggregate_result(&aggregate);
	}

	...
} 

Meaning, the device state will be 'Busy' when the 'devicestate_busy_at' is reached or exceeded, and not only when it is equal to 'devicestate_busy_at' value



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



More information about the asterisk-bugs mailing list