提交 2375a250 authored 作者: Georgiewskiy Yuriy's avatar Georgiewskiy Yuriy

move faststart to callproceeding due to some broken hardware not anderstand…

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
上级 c0b178bd
move faststart to callproceeding due to some broken hardware not anderstand
correclty faststart in progress.
fix rtp timer initialisation.
implement alerting-indication option and channel variable.
implement progress-indication option and channel variable.
......
/*
Version 0.0.16
Version 0.0.17
*/
#include "mod_h323.h"
......@@ -777,6 +777,29 @@ bool FSH323Connection::OnReceivedProgress(const H323SignalPDU &pdu)
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)
{
......@@ -840,10 +863,12 @@ void FSH323Connection::AnsweringCall(AnswerCallResponse response){
H323SignalPDU want245PDU;
H225_Progress_UUIE & prog = want245PDU.BuildProgress(*this);
PBoolean sendPDU = TRUE;
if (SendFastStartAcknowledge(prog.m_fastStart))
PTRACE(2, "H323\tmediaWaitForConnect = FALSE ");
/* if (SendFastStartAcknowledge(prog.m_fastStart)){
PTRACE(2, "H323\tSendFastStartAcknowledge = TRUE ");
prog.IncludeOptionalField(H225_Progress_UUIE::e_fastStart);
else {
} else {
PTRACE(2, "H323\tSendFastStartAcknowledge = FALSE ");
// See if aborted call
if (connectionState == ShuttingDownConnection){
Unlock();
......@@ -863,6 +888,7 @@ void FSH323Connection::AnsweringCall(AnswerCallResponse response){
else
sendPDU = FALSE;
}
*/
const char *vpi = switch_channel_get_variable(m_fsChannel, "progress-indication");
unsigned pi = 8;
if (vpi){
......
......@@ -213,8 +213,10 @@ 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 void OnReceivedReleaseComplete(const H323SignalPDU & pdu);
virtual bool OnReceivedProgress(const H323SignalPDU &);
virtual bool OnSendCallProceeding(H323SignalPDU & callProceedingPDU);
virtual bool OnSendReleaseComplete(H323SignalPDU & pdu);
virtual PBoolean OpenLogicalChannel(const H323Capability& capability, unsigned sessionID, H323Channel::Directions dir);
void setRemoteAddress(const char* remoteIP, WORD remotePort);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论