diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c index c2fc5febae7963a23669ec7d30436306a1c29f7e..96500b4edfd7e801ad95d257ac06d38c66111236 100644 --- a/channels/chan_pjsip.c +++ b/channels/chan_pjsip.c @@ -1077,6 +1077,7 @@ static int transmit_info_with_vidupdate(void *data) static int update_connected_line_information(void *data) { RAII_VAR(struct ast_sip_session *, session, data, ao2_cleanup); + struct ast_party_id connected_id; if ((ast_channel_state(session->channel) != AST_STATE_UP) && (session->inv_session->role == PJSIP_UAS_ROLE)) { int response_code = 0; @@ -1101,7 +1102,13 @@ static int update_connected_line_information(void *data) method = AST_SIP_SESSION_REFRESH_METHOD_UPDATE; } - ast_sip_session_refresh(session, NULL, NULL, NULL, method, 0); + connected_id = ast_channel_connected_effective_id(session->channel); + if ((session->endpoint->id.send_pai || session->endpoint->id.send_rpid) && + (session->endpoint->id.trust_outbound || + ((connected_id.name.presentation & AST_PRES_RESTRICTION) == AST_PRES_ALLOWED && + (connected_id.number.presentation & AST_PRES_RESTRICTION) == AST_PRES_ALLOWED))) { + ast_sip_session_refresh(session, NULL, NULL, NULL, method, 1); + } } return 0; diff --git a/res/res_pjsip_caller_id.c b/res/res_pjsip_caller_id.c index 440cea709681e3afad411662d5c0b0dcb050ea55..645910dbfa99f9b16e8a9c7985cd11c475f7caa9 100644 --- a/res/res_pjsip_caller_id.c +++ b/res/res_pjsip_caller_id.c @@ -662,9 +662,6 @@ static void caller_id_outgoing_request(struct ast_sip_session *session, pjsip_tx modify_id_header(tdata->pool, from, &connected_id); modify_id_header(dlg->pool, dlg->local.info, &connected_id); - if (should_queue_connected_line_update(session, &session->endpoint->id.self)) { - queue_connected_line_update(session, &session->endpoint->id.self); - } } add_id_headers(session, tdata, &connected_id); } @@ -674,7 +671,7 @@ static void caller_id_outgoing_request(struct ast_sip_session *session, pjsip_tx * \brief Session supplement for outgoing INVITE response * * This will add P-Asserted-Identity and Remote-Party-ID headers if necessary - * + * * \param session The session on which the INVITE response is to be sent * \param tdata The outbound INVITE response */