diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-03 14:57:01 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-03 14:57:01 +0000 |
commit | 30571fa22731fc879f9f311ced9f5e0875ee5f4a (patch) | |
tree | 27edceb24c941133aa4837bed4671bbf2aeeacfe /channels/chan_sip.c | |
parent | 6208311110988d9c431ac33f1a1bf247fb53e62d (diff) |
Fix potential callerid snafu's in iax and sip (based on 2562)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3895 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-x | channels/chan_sip.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 8b8f6691a..94e4aa6d5 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; |