diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 16fac87..cf89692 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1783,7 +1783,7 @@ static int __sip_xmit(struct sip_pvt *p, char *data, int len) const struct sockaddr_in *dst = sip_real_dst(p); res = sendto(sipsock, data, len, 0, (const struct sockaddr *)dst, sizeof(struct sockaddr_in)); - if (res == -1) { + if (res < 0) { switch (errno) { case EBADF: /* Bad file descriptor - seems like this is generated when the host exist, but doesn't accept the UDP packet */ case EHOSTUNREACH: /* Host can't be reached */ @@ -1796,7 +1796,7 @@ static int __sip_xmit(struct sip_pvt *p, char *data, int len) if (p->registry && p->registry->regstate < REG_STATE_REGISTERED) { AST_SCHED_DEL(sched, p->registry->timeout); p->registry->needdns = TRUE; - p->registry->timeout = ast_sched_add(sched, 1, sip_reg_timeout, p->registry); + p->registry->timeout = ast_sched_add(sched, 5000, sip_reg_timeout, p->registry); } }