From 864d84e1a703ba2f45aa643583a0d51d5ad1adfa Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sun, 3 Oct 2004 14:57:01 +0000 Subject: [PATCH] Fix potential callerid snafu's in iax and sip (based on 2562) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3895 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_iax2.c | 4 +++- channels/chan_sip.c | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index dfa2ec3b59..b828719b81 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -3604,8 +3604,10 @@ static int check_access(int callno, struct sockaddr_in *sin, struct iax_ies *ies return res; if (ies->called_number) strncpy(iaxs[callno]->exten, ies->called_number, sizeof(iaxs[callno]->exten) - 1); - if (ies->calling_number) + if (ies->calling_number) { + ast_shrink_phone_number(ies->calling_number); strncpy(iaxs[callno]->cid_num, ies->calling_number, sizeof(iaxs[callno]->cid_num) - 1); + } if (ies->calling_name) strncpy(iaxs[callno]->cid_name, ies->calling_name, sizeof(iaxs[callno]->cid_name) - 1); if (ies->calling_ani) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 8b8f6691a0..94e4aa6d56 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2090,7 +2090,7 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, char *title) ast_mutex_unlock(&usecnt_lock); strncpy(tmp->context, i->context, sizeof(tmp->context)-1); strncpy(tmp->exten, i->exten, sizeof(tmp->exten)-1); - if (!ast_strlen_zero(i->cid_num)) + if (!ast_strlen_zero(i->cid_num)) tmp->cid.cid_num = strdup(i->cid_num); if (!ast_strlen_zero(i->cid_name)) tmp->cid.cid_name = strdup(i->cid_name); @@ -5361,6 +5361,7 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, char *cmd if ((c = strchr(of, ':'))) *c = '\0'; strncpy(p->cid_num, of, sizeof(p->cid_num) - 1); + ast_shrink_phone_number(p->cid_num); if (*calleridname) strncpy(p->cid_name, calleridname, sizeof(p->cid_name) - 1); if (ast_strlen_zero(of)) @@ -5380,6 +5381,7 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, char *cmd if (*calleridname) strncpy(p->cid_name, calleridname, sizeof(p->cid_name) - 1); strncpy(p->cid_num, rpid_num, sizeof(p->cid_num) - 1); + ast_shrink_phone_number(p->cid_num); } if (p->rtp) { @@ -5394,8 +5396,10 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, char *cmd sip_cancel_destroy(p); if (!ast_strlen_zero(user->context)) strncpy(p->context, user->context, sizeof(p->context) - 1); - if (!ast_strlen_zero(user->cid_num) && !ast_strlen_zero(p->cid_num)) + if (!ast_strlen_zero(user->cid_num) && !ast_strlen_zero(p->cid_num)) { strncpy(p->cid_num, user->cid_num, sizeof(p->cid_num) - 1); + ast_shrink_phone_number(p->cid_num); + } if (!ast_strlen_zero(user->cid_name) && !ast_strlen_zero(p->cid_name)) strncpy(p->cid_name, user->cid_name, sizeof(p->cid_name) - 1); strncpy(p->username, user->name, sizeof(p->username) - 1); @@ -5454,6 +5458,7 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, char *cmd if (*calleridname) strncpy(p->cid_name, calleridname, sizeof(p->cid_name) - 1); strncpy(p->cid_num, rpid_num, sizeof(p->cid_num) - 1); + ast_shrink_phone_number(p->cid_num); } #ifdef OSP_SUPPORT p->ospauth = peer->ospauth;