|
|
|
@ -6253,7 +6253,7 @@ static int register_verify(int callno, struct sockaddr_in *sin, struct iax_ies *
|
|
|
|
|
if (expire && (expire < iaxs[callno]->expiry))
|
|
|
|
|
iaxs[callno]->expiry = expire;
|
|
|
|
|
|
|
|
|
|
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNKNOWN, "IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
|
|
|
|
|
res = 0;
|
|
|
|
|
|
|
|
|
@ -6764,7 +6764,7 @@ static void __expire_registry(const void *data)
|
|
|
|
|
if (!ast_test_flag(peer, IAX_TEMPONLY))
|
|
|
|
|
ast_db_del("IAX/Registry", peer->name);
|
|
|
|
|
register_peer_exten(peer, 0);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
if (iax2_regfunk)
|
|
|
|
|
iax2_regfunk(peer->name, 0);
|
|
|
|
|
|
|
|
|
@ -6814,7 +6814,7 @@ static void reg_source_db(struct iax2_peer *p)
|
|
|
|
|
peer_unref(p);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNKNOWN, "IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
p->expire = iax2_sched_add(sched, (p->expiry + 10) * 1000, expire_registry, peer_ref(p));
|
|
|
|
|
if (p->expire == -1)
|
|
|
|
|
peer_unref(p);
|
|
|
|
@ -6881,14 +6881,14 @@ static int update_registry(struct sockaddr_in *sin, int callno, char *devtype, i
|
|
|
|
|
ast_test_flag(&iaxs[callno]->state, IAX_STATE_AUTHENTICATED) ? "AUTHENTICATED" : "UNAUTHENTICATED", ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
|
|
|
|
|
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: IAX2\r\nPeer: IAX2/%s\r\nPeerStatus: Registered\r\n", p->name);
|
|
|
|
|
register_peer_exten(p, 1);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNKNOWN, "IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
} else if (!ast_test_flag(p, IAX_TEMPONLY)) {
|
|
|
|
|
ast_verb(3, "Unregistered IAX2 '%s' (%s)\n", p->name,
|
|
|
|
|
ast_test_flag(&iaxs[callno]->state, IAX_STATE_AUTHENTICATED) ? "AUTHENTICATED" : "UNAUTHENTICATED");
|
|
|
|
|
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: IAX2\r\nPeer: IAX2/%s\r\nPeerStatus: Unregistered\r\n", p->name);
|
|
|
|
|
register_peer_exten(p, 0);
|
|
|
|
|
ast_db_del("IAX/Registry", p->name);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "IAX2/%s", p->name); /* Activate notification */
|
|
|
|
|
}
|
|
|
|
|
/* Update the host */
|
|
|
|
|
/* Verify that the host is really there */
|
|
|
|
@ -8816,13 +8816,13 @@ retryowner2:
|
|
|
|
|
if (iaxs[fr->callno]->pingtime <= peer->maxms) {
|
|
|
|
|
ast_log(LOG_NOTICE, "Peer '%s' is now REACHABLE! Time: %d\n", peer->name, iaxs[fr->callno]->pingtime);
|
|
|
|
|
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: IAX2\r\nPeer: IAX2/%s\r\nPeerStatus: Reachable\r\nTime: %d\r\n", peer->name, iaxs[fr->callno]->pingtime);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_NOT_INUSE, "IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
}
|
|
|
|
|
} else if ((peer->historicms > 0) && (peer->historicms <= peer->maxms)) {
|
|
|
|
|
if (iaxs[fr->callno]->pingtime > peer->maxms) {
|
|
|
|
|
ast_log(LOG_NOTICE, "Peer '%s' is now TOO LAGGED (%d ms)!\n", peer->name, iaxs[fr->callno]->pingtime);
|
|
|
|
|
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: IAX2\r\nPeer: IAX2/%s\r\nPeerStatus: Lagged\r\nTime: %d\r\n", peer->name, iaxs[fr->callno]->pingtime);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
peer->lastms = iaxs[fr->callno]->pingtime;
|
|
|
|
@ -9863,7 +9863,7 @@ static void __iax2_poke_noanswer(const void *data)
|
|
|
|
|
if (peer->lastms > -1) {
|
|
|
|
|
ast_log(LOG_NOTICE, "Peer '%s' is now UNREACHABLE! Time: %d\n", peer->name, peer->lastms);
|
|
|
|
|
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: IAX2\r\nPeer: IAX2/%s\r\nPeerStatus: Unreachable\r\nTime: %d\r\n", peer->name, peer->lastms);
|
|
|
|
|
ast_device_state_changed("IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "IAX2/%s", peer->name); /* Activate notification */
|
|
|
|
|
}
|
|
|
|
|
if ((callno = peer->callno) > 0) {
|
|
|
|
|
ast_mutex_lock(&iaxsl[callno]);
|
|
|
|
|