aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-02 12:30:17 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-02 12:30:17 +0000
commitc99b1330741e025ba30580a77b1de7f951b80e15 (patch)
tree8bfdffe64d10d63d6581060f19df6c9f37d85d59 /channels
parentc6b6a94aeaece44533a8d62776efef836858d6fe (diff)
Even of the first PING or LAGRQ doesn't get sent because it comes up too soon,
make sure to reschedule so it gets sent later. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@119687 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_iax2.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 6cdc3b888..b20619fb3 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -998,10 +998,9 @@ static void __send_ping(const void *data)
ast_mutex_lock(&iaxsl[callno]);
while (iaxs[callno] && iaxs[callno]->pingid != -1) {
- if (!iaxs[callno]->peercallno) {
- break;
+ if (iaxs[callno]->peercallno) {
+ send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_PING, 0, NULL, 0, -1);
}
- send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_PING, 0, NULL, 0, -1);
iaxs[callno]->pingid = iax2_sched_add(sched, ping_time * 1000, send_ping, data);
break;
}
@@ -1039,10 +1038,9 @@ static void __send_lagrq(const void *data)
ast_mutex_lock(&iaxsl[callno]);
while (iaxs[callno] && iaxs[callno]->lagid > -1) {
- if (!iaxs[callno]->peercallno) {
- break;
+ if (iaxs[callno]->peercallno) {
+ send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_LAGRQ, 0, NULL, 0, -1);
}
- send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_LAGRQ, 0, NULL, 0, -1);
iaxs[callno]->lagid = iax2_sched_add(sched, lagrq_time * 1000, send_lagrq, data);
break;
}