[asterisk-commits] may: branch may/chan_ooh323_rework r223802 - in /team/may/chan_ooh323_rework/...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Oct 12 18:00:50 CDT 2009
Author: may
Date: Mon Oct 12 18:00:47 2009
New Revision: 223802
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=223802
Log:
changed logic of sendging tcs and msd
remove duplicate dtmf if there is duration info in userinput message
Modified:
team/may/chan_ooh323_rework/addons/ooh323c/src/ooCalls.h
team/may/chan_ooh323_rework/addons/ooh323c/src/ooh245.c
team/may/chan_ooh323_rework/addons/ooh323c/src/ooh323.c
team/may/chan_ooh323_rework/addons/ooh323cDriver.h
Modified: team/may/chan_ooh323_rework/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/may/chan_ooh323_rework/addons/ooh323c/src/ooCalls.h?view=diff&rev=223802&r1=223801&r2=223802
==============================================================================
--- team/may/chan_ooh323_rework/addons/ooh323c/src/ooCalls.h (original)
+++ team/may/chan_ooh323_rework/addons/ooh323c/src/ooCalls.h Mon Oct 12 18:00:47 2009
@@ -209,6 +209,8 @@
H235TimeStamp alertingTime, connectTime, endTime; /* time data for gatekeeper */
FastStartResponse *pFastStartRes; /* fast start response */
char rtpMask[20];
+ char lastDTMF;
+ ASN1UINT nextDTMFstamp;
void *usrData; /*!<User can set this to user specific data*/
struct OOH323CallData* next;
struct OOH323CallData* prev;
Modified: team/may/chan_ooh323_rework/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/may/chan_ooh323_rework/addons/ooh323c/src/ooh245.c?view=diff&rev=223802&r1=223801&r2=223802
==============================================================================
--- team/may/chan_ooh323_rework/addons/ooh323c/src/ooh245.c (original)
+++ team/may/chan_ooh323_rework/addons/ooh323c/src/ooh245.c Mon Oct 12 18:00:47 2009
@@ -2882,6 +2882,24 @@
}
else if((indication->t == T_H245UserInputIndication_signal) &&
(call->dtmfmode & OO_CAP_DTMF_H245_signal)) {
+ if(call->lastDTMF && indication->u.signal->signalType[0] == call->lastDTMF &&
+ call->nextDTMFstamp && indication->u.signal->m.rtpPresent &&
+ indication->u.signal->rtp.m.timestampPresent) {
+ if(call->nextDTMFstamp > indication->u.signal->rtp.timestamp) {
+ OOTRACEERR4("Duplicate dtmf %c on ((%s, %s)\n", call->lastDTMF, call->callType,
+ call->callToken);
+ return OO_OK;
+ }
+ }
+ if (indication->u.signal->m.rtpPresent && indication->u.signal->rtp.m.timestampPresent &&
+ indication->u.signal->m.durationPresent) {
+ call->nextDTMFstamp = indication->u.signal->rtp.timestamp +
+ indication->u.signal->duration;
+ call->lastDTMF = indication->u.signal->signalType[0];
+ } else {
+ call->nextDTMFstamp = 0;
+ call->lastDTMF = 0;
+ }
if(gH323ep.h323Callbacks.onReceivedDTMF)
gH323ep.h323Callbacks.onReceivedDTMF(call,
indication->u.signal->signalType);
Modified: team/may/chan_ooh323_rework/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/may/chan_ooh323_rework/addons/ooh323c/src/ooh323.c?view=diff&rev=223802&r1=223801&r2=223802
==============================================================================
--- team/may/chan_ooh323_rework/addons/ooh323c/src/ooh323.c (original)
+++ team/may/chan_ooh323_rework/addons/ooh323c/src/ooh323.c Mon Oct 12 18:00:47 2009
@@ -111,12 +111,6 @@
}
if(!strcmp(pChannel->dir, "transmit"))
{
- /* May 20090728 */
- if (!epCapIsPreferred(call, pChannel->chanCap)) {
- ret =ooSendCapsAndMSdeterm(call);
- if (ret != OO_OK)
- return ret;
- }
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
@@ -222,6 +216,10 @@
return OO_FAILED;
}
}
+ } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ ret =ooSendCapsAndMSdeterm(call);
+ if (ret != OO_OK)
+ return ret;
}
return OO_OK;
}
@@ -666,13 +664,6 @@
}
if(!strcmp(pChannel->dir, "transmit"))
{
- /* May 20090728 */
- if (!epCapIsPreferred(call, pChannel->chanCap)) {
- ret =ooSendCapsAndMSdeterm(call);
- if (ret != OO_OK)
- return ret;
- }
-
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
{
@@ -785,6 +776,10 @@
return OO_FAILED;
}
}
+ } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ ret =ooSendCapsAndMSdeterm(call);
+ if (ret != OO_OK)
+ return ret;
}
return OO_OK;
}
@@ -891,13 +886,6 @@
}
if(!strcmp(pChannel->dir, "transmit"))
{
- /* May 20090728 */
- if (!epCapIsPreferred(call, pChannel->chanCap)) {
- ret =ooSendCapsAndMSdeterm(call);
- if (ret != OO_OK)
- return ret;
- }
-
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
{
@@ -1010,6 +998,10 @@
return OO_FAILED;
}
}
+ } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ ret =ooSendCapsAndMSdeterm(call);
+ if (ret != OO_OK)
+ return ret;
}
@@ -1117,14 +1109,6 @@
}
if(!strcmp(pChannel->dir, "transmit"))
{
- /* May 20090728 */
- if (!epCapIsPreferred(call, pChannel->chanCap)) {
- ret =ooSendCapsAndMSdeterm(call);
- if (ret != OO_OK)
- return ret;
- }
-
-
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
{
@@ -1237,6 +1221,10 @@
return OO_FAILED;
}
}
+ } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ ret =ooSendCapsAndMSdeterm(call);
+ if (ret != OO_OK)
+ return ret;
}
return OO_OK;
Modified: team/may/chan_ooh323_rework/addons/ooh323cDriver.h
URL: http://svnview.digium.com/svn/asterisk/team/may/chan_ooh323_rework/addons/ooh323cDriver.h?view=diff&rev=223802&r1=223801&r2=223802
==============================================================================
--- team/may/chan_ooh323_rework/addons/ooh323cDriver.h (original)
+++ team/may/chan_ooh323_rework/addons/ooh323cDriver.h Mon Oct 12 18:00:47 2009
@@ -27,14 +27,16 @@
#define H323_DTMF_H245ALPHANUMERIC (1 << 2)
#define H323_DTMF_H245SIGNAL (1 << 3)
#define H323_DTMF_INBAND (1 << 4)
+#define H323_DTMF_CISCO (1 << 5)
#define H323_DTMF_INBANDRELAX (1 << 8)
struct h323_pvt;
int ooh323c_start_stack_thread(void);
int ooh323c_stop_stack_thread(void);
int ooh323c_set_capability
- (struct ast_codec_pref *prefs, int capability, int dtmf);
+ (struct ast_codec_pref *prefs, int capability, int dtmf, int dtmfcodec);
int convertH323CapToAsteriskCap(int cap);
int ooh323c_set_capability_for_call
- (ooCallData *call, struct ast_codec_pref *prefs, int capability, int dtmf, int t38support);
+ (ooCallData *call, struct ast_codec_pref *prefs, int capability, int dtmf, int dtmfcodec,
+ int t38support);
#endif
More information about the asterisk-commits
mailing list