aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-20 13:40:55 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-20 13:40:55 +0000
commiteb2f9eb9c7b1015d9ebb353ed410f3885d833d00 (patch)
tree685e5f0ad784457c4f23412a80a606baa3addbdc
parent6f1c54ba5c901972c6f9dd99ae5a1857a750c553 (diff)
added RR patch from iroot #10908, thanks.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@89445 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_misdn.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 81577113b..ac7f2fc24 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -3143,16 +3143,12 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat
if (!rr->port)
rr->port = misdn_cfg_get_next_port_spin(rr->port);
- for (; rr->port > 0 && rr->port != port_start;
- rr->port = misdn_cfg_get_next_port_spin(rr->port)) {
+ for (; rr->port > 0; rr->port = misdn_cfg_get_next_port_spin(rr->port)) {
int port_up;
int check;
int max_chan;
int last_chance = 0;
- if (!port_start)
- port_start = rr->port;
-
misdn_cfg_get(rr->port, MISDN_CFG_GROUPNAME, cfg_group, BUFFERSIZE);
if (strcasecmp(cfg_group, group))
continue;
@@ -3166,6 +3162,12 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat
if (check && port_up < 0)
ast_log(LOG_WARNING,"This port (%d) is blocked\n", rr->port);
+ if ((port_start == rr->port) && (port_up <= 0))
+ break;
+
+ if (!port_start)
+ port_start = rr->port;
+
if (port_up <= 0)
continue;