diff --git a/src/mod/endpoints/mod_h323/changes.txt b/src/mod/endpoints/mod_h323/changes.txt index f70a94bfae..148b413ee4 100644 --- a/src/mod/endpoints/mod_h323/changes.txt +++ b/src/mod/endpoints/mod_h323/changes.txt @@ -1,3 +1,4 @@ +add PI handling in Call Proceeding. add PI handling in alerting. fix slow start handling move faststart to callproceeding due to some broken hardware not anderstand diff --git a/src/mod/endpoints/mod_h323/mod_h323.cpp b/src/mod/endpoints/mod_h323/mod_h323.cpp index 6516f430dc..6cdd712505 100644 --- a/src/mod/endpoints/mod_h323/mod_h323.cpp +++ b/src/mod/endpoints/mod_h323/mod_h323.cpp @@ -1,5 +1,5 @@ /* - Version 0.0.19 + Version 0.0.20 */ #include "mod_h323.h" @@ -809,6 +809,24 @@ bool FSH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU){ return true; } +bool FSH323Connection::OnReceivedCallProceeding(const H323SignalPDU & pdu){ + PTRACE(4, "mod_h323\t======>PFSH323Connection::OnReceivedCallProceeding ["<<*this<<"]"); + unsigned pi; + + + if (!pdu.GetQ931().GetProgressIndicator(pi)) + pi = 0; + PTRACE(4, "mod_h323\t----------->OnAlerting PI = "< 0){ + if ((m_rxChennel && m_txChennel) || (m_ChennelProgress && m_rxChennel)) + switch_channel_mark_pre_answered(m_fsChannel); + else{ + m_ChennelProgress = true; + } + } + return H323Connection::OnReceivedCallProceeding(pdu); +} + bool FSH323Connection::OnSendCallProceeding(H323SignalPDU & callProceedingPDU){ PTRACE(4, "mod_h323\t======>FSH323Connection::OnSendCallProceeding fastStartState = "<create_outgoing_channel DST NUMBER = "<destination_number); FSH323Connection * connection; diff --git a/src/mod/endpoints/mod_h323/mod_h323.h b/src/mod/endpoints/mod_h323/mod_h323.h index 3941fcc8b0..e719df7002 100644 --- a/src/mod/endpoints/mod_h323/mod_h323.h +++ b/src/mod/endpoints/mod_h323/mod_h323.h @@ -214,6 +214,7 @@ class FSH323Connection:public H323Connection { virtual PBoolean OnStartLogicalChannel(H323Channel& channel); virtual PBoolean OnCreateLogicalChannel(const H323Capability& capability, H323Channel::Directions dir, unsigned& errorCode); virtual bool OnReceivedSignalSetup(const H323SignalPDU & setupPDU); + virtual bool OnReceivedCallProceeding(const H323SignalPDU & pdu); virtual void OnReceivedReleaseComplete(const H323SignalPDU & pdu); virtual bool OnReceivedProgress(const H323SignalPDU &); virtual bool OnSendCallProceeding(H323SignalPDU & callProceedingPDU);