add PI handling in Call Proceeding

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15937 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Georgiewskiy Yuriy 2009-12-12 16:48:50 +00:00
parent a683e4e7e7
commit 8d71550ced
3 changed files with 22 additions and 2 deletions

View File

@ -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

View File

@ -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 = "<<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 @@ FSH323Connection * FSH323EndPoint::FSMakeCall(const PString & dest, void *userDa
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;

View File

@ -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);