aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_h323.c
diff options
context:
space:
mode:
authorjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-20 21:56:12 +0000
committerjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-20 21:56:12 +0000
commit8fda188d26b9e9db6a0e476751c78eb38257576b (patch)
tree81109c3112b4cf052b6b6b63b26eb7ad43b615a4 /channels/chan_h323.c
parentec76498f552e4ff10adcaa0ffc27d1c21cb5792e (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-xchannels/chan_h323.c29
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;