move faststart to callproceeding due to some broken hardware not anderstand correclty faststart in progress.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15906 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Georgiewskiy Yuriy 2009-12-11 14:54:12 +00:00
parent c0b178bdef
commit 2375a250ae
3 changed files with 34 additions and 4 deletions

View File

@ -1,3 +1,5 @@
move faststart to callproceeding due to some broken hardware not anderstand
correclty faststart in progress.
fix rtp timer initialisation. fix rtp timer initialisation.
implement alerting-indication option and channel variable. implement alerting-indication option and channel variable.
implement progress-indication option and channel variable. implement progress-indication option and channel variable.

View File

@ -1,5 +1,5 @@
/* /*
Version 0.0.16 Version 0.0.17
*/ */
#include "mod_h323.h" #include "mod_h323.h"
@ -777,6 +777,29 @@ bool FSH323Connection::OnReceivedProgress(const H323SignalPDU &pdu)
return true; return true;
} }
bool FSH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU){
PTRACE(4, "mod_h323\t======>FSH323Connection::OnReceivedSignalSetup ["<<*this<<"]");
if (!H323Connection::OnReceivedSignalSetup(setupPDU)) return false;
H323SignalPDU callProceedingPDU;
H225_CallProceeding_UUIE & callProceeding = callProceedingPDU.BuildCallProceeding(*this);
if (SendFastStartAcknowledge(callProceeding.m_fastStart))
callProceeding.IncludeOptionalField(H225_CallProceeding_UUIE::e_fastStart);
if (!WriteSignalPDU(callProceedingPDU))
return false;
return true;
}
bool FSH323Connection::OnSendCallProceeding(H323SignalPDU & callProceedingPDU){
PTRACE(4, "mod_h323\t======>FSH323Connection::OnSendCallProceeding fastStartState = "<<FastStartStateNames[fastStartState]<<" ["<<*this<<"]");
return false;
// return true;
}
bool FSH323Connection::OnSendReleaseComplete(H323SignalPDU & pdu) bool FSH323Connection::OnSendReleaseComplete(H323SignalPDU & pdu)
{ {
@ -840,10 +863,12 @@ void FSH323Connection::AnsweringCall(AnswerCallResponse response){
H323SignalPDU want245PDU; H323SignalPDU want245PDU;
H225_Progress_UUIE & prog = want245PDU.BuildProgress(*this); H225_Progress_UUIE & prog = want245PDU.BuildProgress(*this);
PBoolean sendPDU = TRUE; PBoolean sendPDU = TRUE;
PTRACE(2, "H323\tmediaWaitForConnect = FALSE ");
if (SendFastStartAcknowledge(prog.m_fastStart)) /* if (SendFastStartAcknowledge(prog.m_fastStart)){
PTRACE(2, "H323\tSendFastStartAcknowledge = TRUE ");
prog.IncludeOptionalField(H225_Progress_UUIE::e_fastStart); prog.IncludeOptionalField(H225_Progress_UUIE::e_fastStart);
else { } else {
PTRACE(2, "H323\tSendFastStartAcknowledge = FALSE ");
// See if aborted call // See if aborted call
if (connectionState == ShuttingDownConnection){ if (connectionState == ShuttingDownConnection){
Unlock(); Unlock();
@ -863,6 +888,7 @@ void FSH323Connection::AnsweringCall(AnswerCallResponse response){
else else
sendPDU = FALSE; sendPDU = FALSE;
} }
*/
const char *vpi = switch_channel_get_variable(m_fsChannel, "progress-indication"); const char *vpi = switch_channel_get_variable(m_fsChannel, "progress-indication");
unsigned pi = 8; unsigned pi = 8;
if (vpi){ if (vpi){

View File

@ -213,8 +213,10 @@ class FSH323Connection:public H323Connection {
); );
virtual PBoolean OnStartLogicalChannel(H323Channel& channel); virtual PBoolean OnStartLogicalChannel(H323Channel& channel);
virtual PBoolean OnCreateLogicalChannel(const H323Capability& capability, H323Channel::Directions dir, unsigned& errorCode); virtual PBoolean OnCreateLogicalChannel(const H323Capability& capability, H323Channel::Directions dir, unsigned& errorCode);
virtual bool OnReceivedSignalSetup(const H323SignalPDU & setupPDU);
virtual void OnReceivedReleaseComplete(const H323SignalPDU & pdu); virtual void OnReceivedReleaseComplete(const H323SignalPDU & pdu);
virtual bool OnReceivedProgress(const H323SignalPDU &); virtual bool OnReceivedProgress(const H323SignalPDU &);
virtual bool OnSendCallProceeding(H323SignalPDU & callProceedingPDU);
virtual bool OnSendReleaseComplete(H323SignalPDU & pdu); virtual bool OnSendReleaseComplete(H323SignalPDU & pdu);
virtual PBoolean OpenLogicalChannel(const H323Capability& capability, unsigned sessionID, H323Channel::Directions dir); virtual PBoolean OpenLogicalChannel(const H323Capability& capability, unsigned sessionID, H323Channel::Directions dir);
void setRemoteAddress(const char* remoteIP, WORD remotePort); void setRemoteAddress(const char* remoteIP, WORD remotePort);