diff options
author | Jeremy McNamara <jj@nufone.net> | 2005-05-11 13:20:32 +0000 |
---|---|---|
committer | Jeremy McNamara <jj@nufone.net> | 2005-05-11 13:20:32 +0000 |
commit | f3f322c99026a718d1ea2b802ff5fbe395e5b1d6 (patch) | |
tree | 837ff6fcf9596a3d94b246385b6d98519d5db454 /channels/h323 | |
parent | bd8ec48b6a21580ea75076711d7fdd0c9aed175c (diff) |
Fix one way audio with some broken Endpoints and to shut bkw up. Bug #4164
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/h323')
-rwxr-xr-x | channels/h323/ast_h323.cpp | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp index 2fd4d8c9a..d59debbe7 100755 --- a/channels/h323/ast_h323.cpp +++ b/channels/h323/ast_h323.cpp @@ -1013,21 +1013,27 @@ BOOL MyH323_ExternalRTPChannel::Start(void) return FALSE; } - /* Collect the remote information */ - H323_ExternalRTPChannel::GetRemoteAddress(remoteIpAddr, remotePort); - - if (h323debug) { - cout << "\t\tExternal RTP Session Starting" << endl; - cout << "\t\tRTP channel id " << sessionID << " parameters:" << endl; - cout << "\t\t-- remoteIpAddress: " << remoteIpAddr << endl; - cout << "\t\t-- remotePort: " << remotePort << endl; - cout << "\t\t-- ExternalIpAddress: " << localIpAddr << endl; - cout << "\t\t-- ExternalPort: " << localPort << endl; + if (h323debug) { + cout << "\t\tExternal RTP Session Starting" << endl; + cout << "\t\tRTP channel id " << sessionID << " parameters:" << endl; } - /* Notify Asterisk of remote RTP information */ - on_start_rtp_channel(connection.GetCallReference(), (const char *)remoteIpAddr.AsString(), remotePort, - (const char *)connection.GetCallToken(), (int)payloadCode); + /* Update RTP parameters by outgoing voice path only */ + if (GetDirection() == IsTransmitter) { + /* Collect the remote information */ + H323_ExternalRTPChannel::GetRemoteAddress(remoteIpAddr, remotePort); + + if (h323debug) { + cout << "\t\t-- remoteIpAddress: " << remoteIpAddr << endl; + cout << "\t\t-- remotePort: " << remotePort << endl; + cout << "\t\t-- ExternalIpAddress: " << localIpAddr << endl; + cout << "\t\t-- ExternalPort: " << localPort << endl; + } + + /* Notify Asterisk of remote RTP information */ + on_start_rtp_channel(connection.GetCallReference(), (const char *)remoteIpAddr.AsString(), remotePort, + (const char *)connection.GetCallToken(), (int)payloadCode); + } return TRUE; } |