提交 8d71550c authored 作者: Georgiewskiy Yuriy's avatar Georgiewskiy Yuriy

add PI handling in Call Proceeding


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15937 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 a683e4e7
add PI handling in Call Proceeding.
add PI handling in alerting. add PI handling in alerting.
fix slow start handling fix slow start handling
move faststart to callproceeding due to some broken hardware not anderstand move faststart to callproceeding due to some broken hardware not anderstand
......
/* /*
Version 0.0.19 Version 0.0.20
*/ */
#include "mod_h323.h" #include "mod_h323.h"
...@@ -809,6 +809,24 @@ bool FSH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU){ ...@@ -809,6 +809,24 @@ bool FSH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU){
return true; 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){ bool FSH323Connection::OnSendCallProceeding(H323SignalPDU & callProceedingPDU){
PTRACE(4, "mod_h323\t======>FSH323Connection::OnSendCallProceeding fastStartState = "<<FastStartStateNames[fastStartState]<<" ["<<*this<<"]"); PTRACE(4, "mod_h323\t======>FSH323Connection::OnSendCallProceeding fastStartState = "<<FastStartStateNames[fastStartState]<<" ["<<*this<<"]");
...@@ -1542,7 +1560,7 @@ FSH323Connection * FSH323EndPoint::FSMakeCall(const PString & dest, void *userDa ...@@ -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, static switch_call_cause_t create_outgoing_channel(switch_core_session_t *session,
switch_event_t *var_event, switch_event_t *var_event,
switch_caller_profile_t *outbound_profile, 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); PTRACE(4, "mod_h323\t======>create_outgoing_channel DST NUMBER = "<<outbound_profile->destination_number);
FSH323Connection * connection; FSH323Connection * connection;
......
...@@ -214,6 +214,7 @@ class FSH323Connection:public H323Connection { ...@@ -214,6 +214,7 @@ 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 bool OnReceivedSignalSetup(const H323SignalPDU & setupPDU);
virtual bool OnReceivedCallProceeding(const H323SignalPDU & pdu);
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 OnSendCallProceeding(H323SignalPDU & callProceedingPDU);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论