]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
move faststart to callproceeding due to some broken hardware not anderstand correclty...
authorGeorgiewskiy Yuriy <bottleman@icf.org.ru>
Fri, 11 Dec 2009 14:54:12 +0000 (14:54 +0000)
committerGeorgiewskiy Yuriy <bottleman@icf.org.ru>
Fri, 11 Dec 2009 14:54:12 +0000 (14:54 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15906 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_h323/changes.txt
src/mod/endpoints/mod_h323/mod_h323.cpp
src/mod/endpoints/mod_h323/mod_h323.h

index 6da13d858065ed8c39019a89efce3b48129bcf46..1fcb58f055752d9ab3e3d10b6169ec20fbb187ce 100644 (file)
@@ -1,3 +1,5 @@
+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.
index 3f96343b60f94ee0b0118da2fa8615c306c10ac8..f18b8be141137fdc9b550adf88828083bca8826f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-       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){
index 570c56746c46a24869b138d78d1683b92e17df28..2e0cbe803567cdd76febf0e9451fff2ef8612737 100644 (file)
@@ -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);