optmize call setup process

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3063 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeremy McNamara 2004-05-25 02:27:59 +00:00
parent e3ad88c784
commit 588801931f
2 changed files with 14 additions and 38 deletions

View File

@ -471,9 +471,6 @@ MyH323Connection::MyH323Connection(MyH323EndPoint & ep, unsigned callReference,
unsigned options)
: H323Connection(ep, callReference, options)
{
remoteIpAddress = 0; // IP Address of remote endpoint
remotePort = 0; // remote endpoint Data port (control is dataPort+1)
if (h323debug) {
cout << " == New H.323 Connection created." << endl;
}
@ -722,24 +719,14 @@ BOOL MyH323Connection::OnStartLogicalChannel(H323Channel & channel)
cout << ((channel.GetDirection()==H323Channel::IsTransmitter)?"sending ":((channel.GetDirection()==H323Channel::IsReceiver)?"receiving ":" "));
cout << (const char *)(channel.GetCapability()).GetFormatName() << endl;
}
// adjust the count of channels we have open
/* adjust the count of channels we have open */
channelsOpen++;
if (h323debug) {
cout << " -- channelsOpen = " << channelsOpen << endl;
}
H323_ExternalRTPChannel & external = (H323_ExternalRTPChannel &)channel;
external.GetRemoteAddress(remoteIpAddress, remotePort);
if (h323debug) {
if (channel.GetDirection()==H323Channel::IsReceiver) {
cout << " -- remoteIpAddress: " << remoteIpAddress << endl;
cout << " -- remotePort: " << remotePort << endl;
}
}
/* Notify Asterisk of remote RTP information */
on_start_logical_channel(GetCallReference(), (const char *)remoteIpAddress.AsString(), remotePort);
return TRUE;
}
@ -752,10 +739,6 @@ MyH323_ExternalRTPChannel::MyH323_ExternalRTPChannel(MyH323Connection & connecti
WORD dataPort)
: H323_ExternalRTPChannel(connection, capability, direction, sessionID, ip, dataPort)
{
if (h323debug) {
cout << " == New H.323 ExternalRTPChannel created." << endl;
}
return;
}
MyH323_ExternalRTPChannel::MyH323_ExternalRTPChannel(MyH323Connection & connection,
@ -778,32 +761,29 @@ MyH323_ExternalRTPChannel::MyH323_ExternalRTPChannel(MyH323Connection & connecti
MyH323_ExternalRTPChannel::~MyH323_ExternalRTPChannel()
{
if (h323debug) {
cout << " == H.323 ExternalRTPChannel deleted." << endl;
}
return;
}
BOOL MyH323_ExternalRTPChannel::OnReceivedAckPDU(const H245_H2250LogicalChannelAckParameters & param)
{
PIPSocket::Address remoteIpAddress;
WORD remotePort;
PIPSocket::Address remoteIpAddress;
WORD remotePort;
if (H323_ExternalRTPChannel::OnReceivedAckPDU(param)) {
H323_ExternalRTPChannel::GetRemoteAddress(remoteIpAddress, remotePort);
/* Notify Asterisk of remote RTP information */
on_start_logical_channel(connection.GetCallReference(), (const char *)remoteIpAddress.AsString(), remotePort);
return TRUE;
}
return FALSE;
if (H323_ExternalRTPChannel::OnReceivedAckPDU(param)) {
H323_ExternalRTPChannel::GetRemoteAddress(remoteIpAddress, remotePort);
/* Notify Asterisk of remote RTP information */
on_start_logical_channel(connection.GetCallReference(), (const char *)remoteIpAddress.AsString(), remotePort);
return TRUE;
}
return FALSE;
}
/** IMPLEMENTATION OF C FUNCTIONS */
/**
* The extern "C" directive takes care for
* the ANSI-C representation of linkable symbols
*/
extern "C" {
int h323_end_point_exist(void)

View File

@ -248,9 +248,7 @@ class MyH323Connection : public H323Connection {
PString destE164;
PIPSocket::Address externalIpAddress;
PIPSocket::Address remoteIpAddress;
WORD externalPort;
WORD remotePort;
WORD sessionId;
BOOL bridging;
};
@ -289,9 +287,7 @@ class MyH323_ExternalRTPChannel : public H323_ExternalRTPChannel {
BOOL OnReceivedAckPDU(const H245_H2250LogicalChannelAckParameters & param);
PIPSocket::Address externalIpAddress;
PIPSocket::Address remoteIpAddress;
WORD externalPort;
WORD remotePort;
};
/**