diff options
author | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-20 21:56:12 +0000 |
---|---|---|
committer | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-20 21:56:12 +0000 |
commit | 8fda188d26b9e9db6a0e476751c78eb38257576b (patch) | |
tree | 81109c3112b4cf052b6b6b63b26eb7ad43b615a4 /channels/chan_h323.c | |
parent | ec76498f552e4ff10adcaa0ffc27d1c21cb5792e (diff) |
backout code optimization, add more explict error reporting
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3030 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_h323.c')
-rwxr-xr-x | channels/chan_h323.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 1f64e45a4..ec2e0a4c8 100755 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -717,7 +717,7 @@ static struct ast_channel *oh323_new(struct oh323_pvt *i, int state, const char ch->pvt->write = oh323_write; ch->pvt->indicate = oh323_indicate; ch->pvt->fixup = oh323_fixup; -// ch->pvt->bridge = ast_rtp_bridge; + /* ch->pvt->bridge = ast_rtp_bridge; */ /* Set the owner of this channel */ i->owner = ch; @@ -990,11 +990,9 @@ struct rtp_info *create_connection(unsigned call_reference) ast_rtp_get_us(p->rtp, &us); ast_rtp_get_peer(p->rtp, &them); - info->addr = inet_ntoa(us.sin_addr); info->port = ntohs(us.sin_port); - return info; } @@ -1067,23 +1065,25 @@ int setup_incoming_call(call_details_t cd) strncpy(p->exten, cd.call_dest_alias, sizeof(p->exten)-1); } if (ast_strlen_zero(default_context)) { - ast_log(LOG_ERROR, "Call from user '%s' rejected due to no default context\n", p->cd.call_source_aliases); + ast_log(LOG_ERROR, "Call from '%s' rejected due to no default context\n", p->cd.call_source_aliases); return 0; } strncpy(p->context, default_context, sizeof(p->context)-1); ast_log(LOG_DEBUG, "Sending %s to context [%s]\n", cd.call_source_aliases, p->context); } else { if (user->host) { - if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){ - - if(ast_strlen_zero(default_context)) { - ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address of '%s'\n", user->name, cd.sourceIp); - return 0; + if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){ + if (ast_strlen_zero(user->context)) { + if (ast_strlen_zero(default_context)) { + ast_log(LOG_ERROR, "Call from '%s' rejected due to non-matching IP address (%s) and no default context\n", user->name, cd.sourceIp); + return 0; + } + strncpy(p->context, default_context, sizeof(p->context)-1); + } else { + strncpy(p->context, user->context, sizeof(p->context)-1); } - - strncpy(p->context, default_context, sizeof(p->context)-1); - sprintf(p->exten,"i"); - + sprintf(p->exten, "i"); + ast_log(LOG_ERROR, "Call from '%s' rejected due to non-matching IP address (%s)s\n", user->name, cd.sourceIp); goto exit; } } @@ -1095,7 +1095,7 @@ int setup_incoming_call(call_details_t cd) } strncpy(p->context, user->context, sizeof(p->context)-1); p->bridge = user->bridge; - p->nat = user->nat; + p->nat = user->nat; if (!ast_strlen_zero(user->callerid)) { strncpy(p->callerid, user->callerid, sizeof(p->callerid) - 1); @@ -1799,7 +1799,6 @@ static int oh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, str ast_rtp_get_peer(rtp, &them); ast_rtp_get_us(rtp, &us); - h323_native_bridge(p->cd.call_token, inet_ntoa(them.sin_addr), mode); return 0; |