Modified: freeswitch/trunk/src/mod/endpoints/mod_h323/changes.txt (15936 => 15937)
--- freeswitch/trunk/src/mod/endpoints/mod_h323/changes.txt 2009-12-12 16:33:38 UTC (rev 15936)
+++ freeswitch/trunk/src/mod/endpoints/mod_h323/changes.txt 2009-12-12 16:48:50 UTC (rev 15937)
@@ -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
Modified: freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.cpp (15936 => 15937)
--- freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.cpp 2009-12-12 16:33:38 UTC (rev 15936)
+++ freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.cpp 2009-12-12 16:48:50 UTC (rev 15937)
@@ -1,5 +1,5 @@
/*
- Version 0.0.19
+ Version 0.0.20
*/
#include "mod_h323.h"
@@ -809,6 +809,24 @@
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 = "<<pi);
+ if (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 = "<<FastStartStateNames[fastStartState]<<" ["<<*this<<"]");
@@ -1542,7 +1560,7 @@
static switch_call_cause_t create_outgoing_channel(switch_core_session_t *session,
switch_event_t *var_event,
switch_caller_profile_t *outbound_profile,
- switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags,switch_call_cause_t *cancel_cause){
+ switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags, switch_call_cause_t *cancel_cause){
PTRACE(4, "mod_h323\t======>create_outgoing_channel DST NUMBER = "<<outbound_profile->destination_number);
FSH323Connection * connection;
Modified: freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.h (15936 => 15937)
--- freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.h 2009-12-12 16:33:38 UTC (rev 15936)
+++ freeswitch/trunk/src/mod/endpoints/mod_h323/mod_h323.h 2009-12-12 16:48:50 UTC (rev 15937)
@@ -214,6 +214,7 @@
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);