diff --git a/channels/sig_pri.c b/channels/sig_pri.c index feb86fdae1..96bb03fab9 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -447,35 +447,41 @@ static int pri_to_ast_presentation(int pri_presentation) int ast_presentation; switch (pri_presentation) { - case PRES_ALLOWED_USER_NUMBER_NOT_SCREENED: - ast_presentation = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED; + case PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_UNSCREENED: + ast_presentation = AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_UNSCREENED; break; - case PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN: - ast_presentation = AST_PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN; + case PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_PASSED_SCREEN: + ast_presentation = AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_PASSED_SCREEN; break; - case PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN: - ast_presentation = AST_PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN; + case PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_FAILED_SCREEN: + ast_presentation = AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_FAILED_SCREEN; break; - case PRES_ALLOWED_NETWORK_NUMBER: - ast_presentation = AST_PRES_ALLOWED_NETWORK_NUMBER; + case PRI_PRES_ALLOWED | PRI_PRES_NETWORK_NUMBER: + ast_presentation = AST_PRES_ALLOWED | AST_PRES_NETWORK_NUMBER; break; - case PRES_PROHIB_USER_NUMBER_NOT_SCREENED: - ast_presentation = AST_PRES_PROHIB_USER_NUMBER_NOT_SCREENED; + + case PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_UNSCREENED: + ast_presentation = AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_UNSCREENED; break; - case PRES_PROHIB_USER_NUMBER_PASSED_SCREEN: - ast_presentation = AST_PRES_PROHIB_USER_NUMBER_PASSED_SCREEN; + case PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_PASSED_SCREEN: + ast_presentation = AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_PASSED_SCREEN; break; - case PRES_PROHIB_USER_NUMBER_FAILED_SCREEN: - ast_presentation = AST_PRES_PROHIB_USER_NUMBER_FAILED_SCREEN; + case PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_FAILED_SCREEN: + ast_presentation = AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_FAILED_SCREEN; break; - case PRES_PROHIB_NETWORK_NUMBER: - ast_presentation = AST_PRES_PROHIB_NETWORK_NUMBER; + case PRI_PRES_RESTRICTED | PRI_PRES_NETWORK_NUMBER: + ast_presentation = AST_PRES_RESTRICTED | AST_PRES_NETWORK_NUMBER; break; - case PRES_NUMBER_NOT_AVAILABLE: + + case PRI_PRES_UNAVAILABLE | PRI_PRES_USER_NUMBER_UNSCREENED: + case PRI_PRES_UNAVAILABLE | PRI_PRES_USER_NUMBER_PASSED_SCREEN: + case PRI_PRES_UNAVAILABLE | PRI_PRES_USER_NUMBER_FAILED_SCREEN: + case PRI_PRES_UNAVAILABLE | PRI_PRES_NETWORK_NUMBER: ast_presentation = AST_PRES_NUMBER_NOT_AVAILABLE; break; + default: - ast_presentation = AST_PRES_PROHIB_USER_NUMBER_NOT_SCREENED; + ast_presentation = AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_UNSCREENED; break; } @@ -496,35 +502,41 @@ static int ast_to_pri_presentation(int ast_presentation) int pri_presentation; switch (ast_presentation) { - case AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED: - pri_presentation = PRES_ALLOWED_USER_NUMBER_NOT_SCREENED; + case AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_UNSCREENED: + pri_presentation = PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_UNSCREENED; break; - case AST_PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN: - pri_presentation = PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN; + case AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_PASSED_SCREEN: + pri_presentation = PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_PASSED_SCREEN; break; - case AST_PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN: - pri_presentation = PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN; + case AST_PRES_ALLOWED | AST_PRES_USER_NUMBER_FAILED_SCREEN: + pri_presentation = PRI_PRES_ALLOWED | PRI_PRES_USER_NUMBER_FAILED_SCREEN; break; - case AST_PRES_ALLOWED_NETWORK_NUMBER: - pri_presentation = PRES_ALLOWED_NETWORK_NUMBER; + case AST_PRES_ALLOWED | AST_PRES_NETWORK_NUMBER: + pri_presentation = PRI_PRES_ALLOWED | PRI_PRES_NETWORK_NUMBER; break; - case AST_PRES_PROHIB_USER_NUMBER_NOT_SCREENED: - pri_presentation = PRES_PROHIB_USER_NUMBER_NOT_SCREENED; + + case AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_UNSCREENED: + pri_presentation = PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_UNSCREENED; break; - case AST_PRES_PROHIB_USER_NUMBER_PASSED_SCREEN: - pri_presentation = PRES_PROHIB_USER_NUMBER_PASSED_SCREEN; + case AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_PASSED_SCREEN: + pri_presentation = PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_PASSED_SCREEN; break; - case AST_PRES_PROHIB_USER_NUMBER_FAILED_SCREEN: - pri_presentation = PRES_PROHIB_USER_NUMBER_FAILED_SCREEN; + case AST_PRES_RESTRICTED | AST_PRES_USER_NUMBER_FAILED_SCREEN: + pri_presentation = PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_FAILED_SCREEN; break; - case AST_PRES_PROHIB_NETWORK_NUMBER: - pri_presentation = PRES_PROHIB_NETWORK_NUMBER; + case AST_PRES_RESTRICTED | AST_PRES_NETWORK_NUMBER: + pri_presentation = PRI_PRES_RESTRICTED | PRI_PRES_NETWORK_NUMBER; break; - case AST_PRES_NUMBER_NOT_AVAILABLE: + + case AST_PRES_UNAVAILABLE | AST_PRES_USER_NUMBER_UNSCREENED: + case AST_PRES_UNAVAILABLE | AST_PRES_USER_NUMBER_PASSED_SCREEN: + case AST_PRES_UNAVAILABLE | AST_PRES_USER_NUMBER_FAILED_SCREEN: + case AST_PRES_UNAVAILABLE | AST_PRES_NETWORK_NUMBER: pri_presentation = PRES_NUMBER_NOT_AVAILABLE; break; + default: - pri_presentation = PRES_PROHIB_USER_NUMBER_NOT_SCREENED; + pri_presentation = PRI_PRES_RESTRICTED | PRI_PRES_USER_NUMBER_UNSCREENED; break; } diff --git a/main/channel.c b/main/channel.c index c1e24df03c..233acc7681 100644 --- a/main/channel.c +++ b/main/channel.c @@ -1949,6 +1949,9 @@ int ast_party_id_presentation(const struct ast_party_id *id) if (name_priority < number_priority) { number_value = name_value; } + if (number_value == AST_PRES_UNAVAILABLE) { + return AST_PRES_NUMBER_NOT_AVAILABLE; + } return number_value | number_screening; }