diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index bca823c4ab8d3af851b21e3d8f2de85089da3a46..d8d76a502c3a1f51f97a19897e9ee11e65f8c9e1 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -4306,9 +4306,11 @@ static int brcm_signal_callerid(struct ast_channel *chan, struct brcm_subchannel
 					// If anonymous/unsubscribed number we marked caller name as private "P"
 					if (strcasecmp("anonymous", ast_channel_connected(chan)->id.number.str) == 0 ||
 						strcasecmp("unsubscribed", ast_channel_connected(chan)->id.number.str) == 0) {
+						strcpy(number, "P");
 						strcpy(name, "P");
 					} else if (strcasecmp("unavailable",ast_channel_connected(chan)->id.number.str) ==0 ) {
 						// If unavailable number we mark caller name as not available "O"
+						strcpy(number, "O");
 						strcpy(name, "O");
 					}
 				} else {
@@ -4321,8 +4323,8 @@ static int brcm_signal_callerid(struct ast_channel *chan, struct brcm_subchannel
 			}
 		} else {
 			// Name and number not available.
-			strcpy(number, "0");
-			strcpy(name, "0");
+			strcpy(number, "O");
+			strcpy(name, "O");
 		}
 
 		/* Add number and name to caller id string, format: number,"name" */