res_pjsip: New endpoint option "notify_early_inuse_ringing"

This option was added to control whether to notify dialog-info state
'early' or 'confirmed' on Ringing when already INUSE.
The value "yes" is useful for some SIP phones (Cisco SPA)
to be able to indicate and pick up ringing devices.

ASTERISK-26919 #close

Change-Id: Ie050bc30023543c7dfb4365c5be3ce58c738c711
This commit is contained in:
Alexei Gradinari
2017-06-12 10:23:56 -04:00
parent 322a1c3222
commit 7a46309d3d
12 changed files with 69 additions and 8 deletions

View File

@@ -82,7 +82,8 @@ void ast_sip_sanitize_xml(const char *input, char *output, size_t len)
}
void ast_sip_presence_exten_state_to_str(int state, char **statestring, char **pidfstate,
char **pidfnote, enum ast_sip_pidf_state *local_state)
char **pidfnote, enum ast_sip_pidf_state *local_state,
unsigned int notify_early_inuse_ringing)
{
switch (state) {
case AST_EXTENSION_RINGING:
@@ -92,7 +93,11 @@ void ast_sip_presence_exten_state_to_str(int state, char **statestring, char **p
*pidfnote = "Ringing";
break;
case (AST_EXTENSION_INUSE | AST_EXTENSION_RINGING):
*statestring = "confirmed";
if (notify_early_inuse_ringing) {
*statestring = "early";
} else {
*statestring = "confirmed";
}
*local_state = NOTIFY_INUSE;
*pidfstate = "busy";
*pidfnote = "Ringing";