--- asterisk-1.2.5/channels/chan_sip.c.findpeer 2006-02-28 00:14:53.000000000 +0900 +++ asterisk-1.2.5/channels/chan_sip.c 2006-03-22 19:46:39.427467640 +0900 @@ -1683,7 +1683,16 @@ var = ast_load_realtime("sippeers", "host", iabuf, NULL); /* First check for fixed IP hosts */ if (!var) var = ast_load_realtime("sippeers", "ipaddr", iabuf, NULL); /* Then check for registred hosts */ - + + /* Second check for host name */ + if (!var) { + struct hostent *hp; + in_addr_t addr; + addr = inet_addr(iabuf); + if (hp = gethostbyaddr((const char *)&addr, sizeof(in_addr_t), AF_INET)) { + var = ast_load_realtime("sippeers", "host", hp->h_name, NULL); + } + } } else return NULL;