mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 10:33:13 +00:00
Merged revisions 43861-43862 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r43861 | pcadach | 2006-09-28 18:47:23 +0600 (Чтв, 28 Сен 2006) | 1 line Put attribute tag at correct place ........ r43862 | pcadach | 2006-09-28 18:58:22 +0600 (Чтв, 28 Сен 2006) | 1 line Force remote side to start media on outgoing PROGRESS message ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -596,6 +596,41 @@ BOOL MyH323Connection::OnReceivedProgress(const H323SignalPDU &pdu)
|
|||||||
return connectionState != ShuttingDownConnection;
|
return connectionState != ShuttingDownConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL MyH323Connection::MySendProgress()
|
||||||
|
{
|
||||||
|
/* The code taken from H323Connection::AnsweringCall() but ALWAYS send
|
||||||
|
PROGRESS message, including slow start operations */
|
||||||
|
H323SignalPDU progressPDU;
|
||||||
|
H225_Progress_UUIE &prog = progressPDU.BuildProgress(*this);
|
||||||
|
|
||||||
|
if (!mediaWaitForConnect) {
|
||||||
|
if (SendFastStartAcknowledge(prog.m_fastStart))
|
||||||
|
prog.IncludeOptionalField(H225_Progress_UUIE::e_fastStart);
|
||||||
|
else {
|
||||||
|
if (connectionState == ShuttingDownConnection)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* Do early H.245 start */
|
||||||
|
earlyStart = TRUE;
|
||||||
|
if (!h245Tunneling) {
|
||||||
|
if (!H323Connection::StartControlChannel())
|
||||||
|
return FALSE;
|
||||||
|
prog.IncludeOptionalField(H225_Progress_UUIE::e_h245Address);
|
||||||
|
controlChannel->SetUpTransportPDU(prog.m_h245Address, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
progressPDU.GetQ931().SetProgressIndicator(Q931::ProgressInbandInformationAvailable);
|
||||||
|
|
||||||
|
#ifdef TUNNELLING
|
||||||
|
EmbedTunneledInfo(progressPDU);
|
||||||
|
#endif
|
||||||
|
HandleTunnelPDU(&progressPDU);
|
||||||
|
WriteSignalPDU(progressPDU);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
H323Connection::AnswerCallResponse MyH323Connection::OnAnswerCall(const PString & caller,
|
H323Connection::AnswerCallResponse MyH323Connection::OnAnswerCall(const PString & caller,
|
||||||
const H323SignalPDU & setupPDU,
|
const H323SignalPDU & setupPDU,
|
||||||
H323SignalPDU & connectPDU)
|
H323SignalPDU & connectPDU)
|
||||||
@@ -2124,7 +2159,11 @@ int h323_send_progress(const char *token)
|
|||||||
cout << "No connection found for " << token << endl;
|
cout << "No connection found for " << token << endl;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#if 1
|
||||||
|
((MyH323Connection *)connection)->MySendProgress();
|
||||||
|
#else
|
||||||
connection->AnsweringCall(H323Connection::AnswerCallDeferredWithMedia);
|
connection->AnsweringCall(H323Connection::AnswerCallDeferredWithMedia);
|
||||||
|
#endif
|
||||||
connection->Unlock();
|
connection->Unlock();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -80,6 +80,7 @@ public:
|
|||||||
virtual void OnUserInputTone(char, unsigned, unsigned, unsigned);
|
virtual void OnUserInputTone(char, unsigned, unsigned, unsigned);
|
||||||
virtual void OnUserInputString(const PString &value);
|
virtual void OnUserInputString(const PString &value);
|
||||||
BOOL OnReceivedProgress(const H323SignalPDU &);
|
BOOL OnReceivedProgress(const H323SignalPDU &);
|
||||||
|
BOOL MySendProgress();
|
||||||
void OnSendCapabilitySet(H245_TerminalCapabilitySet &);
|
void OnSendCapabilitySet(H245_TerminalCapabilitySet &);
|
||||||
void OnSetLocalCapabilities();
|
void OnSetLocalCapabilities();
|
||||||
void SetCapabilities(int, int, void *, int);
|
void SetCapabilities(int, int, void *, int);
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
#define _ASTERISK_COMPILER_H
|
#define _ASTERISK_COMPILER_H
|
||||||
|
|
||||||
#if HAVE_ATTRIBUTE_always_inline
|
#if HAVE_ATTRIBUTE_always_inline
|
||||||
#define force_inline inline __attribute__((always_inline))
|
#define force_inline __attribute__((always_inline)) inline
|
||||||
#else
|
#else
|
||||||
#define force_inline inline
|
#define force_inline inline
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user