Merged revisions 43635,43843-43844,43846 via svnmerge from
authorPaul Cadach <paul@odt.east.telecom.kz>
Thu, 28 Sep 2006 11:12:58 +0000 (11:12 +0000)
committerPaul Cadach <paul@odt.east.telecom.kz>
Thu, 28 Sep 2006 11:12:58 +0000 (11:12 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r43635 | pcadach | 2006-09-26 03:26:12 +0600 (Втр, 26 Сен 2006) | 1 line

Fix ASN1 description of non-standard Cisco extensions
........
r43843 | pcadach | 2006-09-28 12:01:37 +0600 (Чтв, 28 Сен 2006) | 1 line

Don't treat unknown control frames as voice
........
r43844 | pcadach | 2006-09-28 12:02:45 +0600 (Чтв, 28 Сен 2006) | 1 line

Don't warn on HOLD/UNHOLD control frames
........
r43846 | pcadach | 2006-09-28 16:51:21 +0600 (Чтв, 28 Сен 2006) | 1 line

Do not open transmit channel until TCS is received
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43853 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/h323/ast_h323.cxx
channels/h323/cisco-h225.asn
channels/h323/cisco-h225.cxx
channels/h323/cisco-h225.h
main/file.c

index 826be72..3b737f6 100644 (file)
@@ -1432,6 +1432,10 @@ H323Channel * MyH323Connection::CreateRealTimeLogicalChannel(const H323Capabilit
                                                                        const H245_H2250LogicalChannelParameters * /*param*/,
                                                                        RTP_QOS * /*param*/ )
 {
+       /* Do not open tx channel when transmitter has been paused by empty TCS */
+       if ((dir == H323Channel::IsTransmitter) && transmitterSidePaused)
+               return NULL;
+
        return new MyH323_ExternalRTPChannel(*this, capability, dir, sessionID);
 }
 
index c0eaeb6..1372e67 100644 (file)
@@ -7,8 +7,8 @@ H323_UU_NonStdInfo ::= SEQUENCE
        protoParam ProtoParam OPTIONAL,
        commonParam CommonParam OPTIONAL,
        ...,
-       progIndParam ProgIndParam OPTIONAL,
        dummy1 OCTET STRING OPTIONAL,
+       progIndParam ProgIndParam OPTIONAL,
        callMgrParam CallMgrParam OPTIONAL,
        callSignallingParam CallSignallingParam OPTIONAL,
        dummy2 OCTET STRING OPTIONAL,
index 1b52f4c..37adc4e 100644 (file)
@@ -739,10 +739,10 @@ void CISCO_H225_H323_UU_NonStdInfo::PrintOn(ostream & strm) const
     strm << setw(indent+13) << "protoParam = " << setprecision(indent) << m_protoParam << '\n';
   if (HasOptionalField(e_commonParam))
     strm << setw(indent+14) << "commonParam = " << setprecision(indent) << m_commonParam << '\n';
-  if (HasOptionalField(e_progIndParam))
-    strm << setw(indent+15) << "progIndParam = " << setprecision(indent) << m_progIndParam << '\n';
   if (HasOptionalField(e_dummy1))
     strm << setw(indent+9) << "dummy1 = " << setprecision(indent) << m_dummy1 << '\n';
+  if (HasOptionalField(e_progIndParam))
+    strm << setw(indent+15) << "progIndParam = " << setprecision(indent) << m_progIndParam << '\n';
   if (HasOptionalField(e_callMgrParam))
     strm << setw(indent+15) << "callMgrParam = " << setprecision(indent) << m_callMgrParam << '\n';
   if (HasOptionalField(e_callSignallingParam))
@@ -800,10 +800,10 @@ BOOL CISCO_H225_H323_UU_NonStdInfo::Decode(PASN_Stream & strm)
     return FALSE;
   if (HasOptionalField(e_commonParam) && !m_commonParam.Decode(strm))
     return FALSE;
-  if (!KnownExtensionDecode(strm, e_progIndParam, m_progIndParam))
-    return FALSE;
   if (!KnownExtensionDecode(strm, e_dummy1, m_dummy1))
     return FALSE;
+  if (!KnownExtensionDecode(strm, e_progIndParam, m_progIndParam))
+    return FALSE;
   if (!KnownExtensionDecode(strm, e_callMgrParam, m_callMgrParam))
     return FALSE;
   if (!KnownExtensionDecode(strm, e_callSignallingParam, m_callSignallingParam))
@@ -827,8 +827,8 @@ void CISCO_H225_H323_UU_NonStdInfo::Encode(PASN_Stream & strm) const
     m_protoParam.Encode(strm);
   if (HasOptionalField(e_commonParam))
     m_commonParam.Encode(strm);
-  KnownExtensionEncode(strm, e_progIndParam, m_progIndParam);
   KnownExtensionEncode(strm, e_dummy1, m_dummy1);
+  KnownExtensionEncode(strm, e_progIndParam, m_progIndParam);
   KnownExtensionEncode(strm, e_callMgrParam, m_callMgrParam);
   KnownExtensionEncode(strm, e_callSignallingParam, m_callSignallingParam);
   KnownExtensionEncode(strm, e_dummy2, m_dummy2);
index db4e0af..7595b4b 100644 (file)
@@ -262,8 +262,8 @@ class CISCO_H225_H323_UU_NonStdInfo : public PASN_Sequence
       e_version,
       e_protoParam,
       e_commonParam,
-      e_progIndParam,
       e_dummy1,
+      e_progIndParam,
       e_callMgrParam,
       e_callSignallingParam,
       e_dummy2,
@@ -273,8 +273,8 @@ class CISCO_H225_H323_UU_NonStdInfo : public PASN_Sequence
     PASN_Integer m_version;
     CISCO_H225_ProtoParam m_protoParam;
     CISCO_H225_CommonParam m_commonParam;
-    CISCO_H225_ProgIndParam m_progIndParam;
     PASN_OctetString m_dummy1;
+    CISCO_H225_ProgIndParam m_progIndParam;
     CISCO_H225_CallMgrParam m_callMgrParam;
     CISCO_H225_CallSignallingParam m_callSignallingParam;
     PASN_OctetString m_dummy2;
index 766c38a..f8ca9af 100644 (file)
@@ -1056,11 +1056,14 @@ static int waitstream_core(struct ast_channel *c, const char *breakon,
                                case AST_CONTROL_RINGING:
                                case AST_CONTROL_ANSWER:
                                case AST_CONTROL_VIDUPDATE:
+                               case AST_CONTROL_HOLD:
+                               case AST_CONTROL_UNHOLD:
                                        /* Unimportant */
                                        break;
                                default:
                                        ast_log(LOG_WARNING, "Unexpected control subclass '%d'\n", fr->subclass);
                                }
+                               break;
                        case AST_FRAME_VOICE:
                                /* Write audio if appropriate */
                                if (audiofd > -1)