diff -Naur asterisk-20050701/channels/chan_h323.c asterisk/channels/chan_h323.c --- asterisk-20050701/channels/chan_h323.c Fri Jun 24 09:15:04 2005 +++ asterisk/channels/chan_h323.c Fri Jul 1 12:18:52 2005 @@ -782,7 +782,7 @@ return NULL; } memset(pvt, 0, sizeof(struct oh323_pvt)); - pvt->rtp = ast_rtp_new(sched, io, 1, 0); + pvt->rtp = ast_rtp_new_with_bindaddr(sched, io, 1, 0,bindaddr.sin_addr); if (!pvt->rtp) { ast_log(LOG_WARNING, "Unable to create RTP session: %s\n", strerror(errno)); free(pvt); @@ -1108,8 +1108,8 @@ /* figure out our local RTP port and tell the H.323 stack about it */ ast_rtp_get_us(pvt->rtp, &us); ast_mutex_unlock(&pvt->lock); - /* evil hack, until I (or someone?) figures out a better way */ - ast_inet_ntoa(info->addr, sizeof(info->addr), bindaddr.sin_addr); + + ast_inet_ntoa(info->addr, sizeof(info->addr), us.sin_addr); info->port = ntohs(us.sin_port); if (h323debug) ast_log(LOG_DEBUG, "Sending RTP 'US' %s:%d\n", info->addr, info->port);