From: Mark Spencer Date: Sun, 3 Oct 2004 14:57:01 +0000 (+0000) Subject: Fix potential callerid snafu's in iax and sip (based on 2562) X-Git-Tag: 1.2.0-beta1~2099 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=864d84e1a703ba2f45aa643583a0d51d5ad1adfa;p=thirdparty%2Fasterisk.git 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 --- 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;