From 4d19e3eb4b6ab0e2b73e8adbcaa686b859037bd4 Mon Sep 17 00:00:00 2001
From: Alexandr Anikin <may@telecom-service.ru>
Date: Thu, 3 Dec 2009 20:26:55 +0000
Subject: [PATCH] jitterbuffer setup correction correction of double pointer
 references from previous rev

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232853 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 addons/chan_ooh323.c        | 21 +++++++++++----------
 addons/ooh323c/src/ooh245.c |  4 ++--
 addons/ooh323c/src/ooh323.c |  8 ++++----
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c
index 5fa3ae5665..4c633ed3a9 100644
--- a/addons/chan_ooh323.c
+++ b/addons/chan_ooh323.c
@@ -14,6 +14,8 @@
  *
  *****************************************************************************/
 
+/* Reworked version I, Nov-2009, by Alexandr Anikin, may@telecom-service.ru */
+
 
 /*** MODULEINFO
 	<defaultenabled>no</defaultenabled>
@@ -94,6 +96,7 @@ static const struct ast_channel_tech ooh323_tech = {
 	.type = type,
 	.description = tdesc,
 	.capabilities = -1,
+	.properties = AST_CHAN_TP_WANTSJITTER | AST_CHAN_TP_CREATESJITTER,
 	.requester = ooh323_request,
 	.send_digit_begin = ooh323_digit_begin,
 	.send_digit_end = ooh323_digit_end,
@@ -1015,7 +1018,7 @@ static int ooh323_hangup(struct ast_channel *ast)
 		ast_update_use_count();
 	  
 	} else {
-		ast_log(LOG_DEBUG, "No call to hangup\n" );
+		ast_debug(1, "No call to hangup\n" );
 	}
 	
 	if (gH323Debug)
@@ -1326,6 +1329,8 @@ static int ooh323_fixup(struct ast_channel *oldchan, struct ast_channel *newchan
 {
 	struct ooh323_pvt *p = newchan->tech_pvt;
 
+	if (!p) return -1;
+
 	if (gH323Debug)
 		ast_verbose("--- ooh323c ooh323_fixup\n");
 
@@ -3077,14 +3082,6 @@ static int load_module(void)
 		.onModeChanged = onModeChanged
 	};
 
-	ast_log(LOG_NOTICE, 
-		"---------------------------------------------------------------------------------\n"
-		"---  ******* IMPORTANT NOTE ***********\n"
-		"---\n"
-		"---  This module is currently unsupported.  Use it at your own risk.\n"
-		"---\n"
-		"---------------------------------------------------------------------------------\n");
-
 	myself = ast_module_info->self;
 
 	h225Callbacks.onReceivedSetup = &ooh323_onReceivedSetup;
@@ -3625,7 +3622,7 @@ static enum ast_rtp_glue_result ooh323_get_rtp_peer(struct ast_channel *chan, st
 	enum ast_rtp_glue_result res = AST_RTP_GLUE_RESULT_LOCAL;
 
 	if (!(p = (struct ooh323_pvt *) chan->tech_pvt))
-	return AST_RTP_GLUE_RESULT_FORBID;
+		return AST_RTP_GLUE_RESULT_FORBID;
 
 	if (!(p->rtp)) {
 		return AST_RTP_GLUE_RESULT_FORBID;
@@ -3635,6 +3632,10 @@ static enum ast_rtp_glue_result ooh323_get_rtp_peer(struct ast_channel *chan, st
 
 	res = AST_RTP_GLUE_RESULT_LOCAL;
 
+	if (ast_test_flag(&global_jbconf, AST_JB_FORCED)) {
+		res = AST_RTP_GLUE_RESULT_FORBID;
+	}
+
 	return res;
 }
 
diff --git a/addons/ooh323c/src/ooh245.c b/addons/ooh323c/src/ooh245.c
index c8aad5d170..920df770fa 100644
--- a/addons/ooh323c/src/ooh245.c
+++ b/addons/ooh323c/src/ooh245.c
@@ -3201,7 +3201,7 @@ int ooSendH245UserInputIndication_alphanumeric
       ooFreeH245Message(call, ph245msg);
       return OO_FAILED;
    }
-   strcpy(*(char**)indication->u.userInput->u.alphanumeric, data);
+   strcpy(*(char**)&indication->u.userInput->u.alphanumeric, data);
    OOTRACEDBGA3 ("Built UserInputIndication_alphanumeric (%s, %s)\n", 
                  call->callType, call->callToken);
 
@@ -3264,7 +3264,7 @@ int ooSendH245UserInputIndication_signal
       ooFreeH245Message(call, ph245msg);
       return OO_FAILED;
    }
-   strcpy(*(char**)indication->u.userInput->u.signal->signalType, data);
+   strcpy(*(char**)&indication->u.userInput->u.signal->signalType, data);
    OOTRACEDBGA3 ("Built UserInputIndication_signal (%s, %s)\n", 
                  call->callType, call->callToken);
 
diff --git a/addons/ooh323c/src/ooh323.c b/addons/ooh323c/src/ooh323.c
index eaf60e3344..8ccec65509 100644
--- a/addons/ooh323c/src/ooh323.c
+++ b/addons/ooh323c/src/ooh323.c
@@ -2167,7 +2167,7 @@ int ooPopulatePrefixList(OOCTXT *pctxt, OOAliases *pAliases,
                memFreePtr(pctxt, pPrefixEntry);
                return OO_FAILED;
             }
-            strcpy(*(char**)pPrefixEntry->prefix.u.dialedDigits, pAlias->value);
+            strcpy(*(char**)&pPrefixEntry->prefix.u.dialedDigits, pAlias->value);
             bValid = TRUE;
             break;
          default:
@@ -2220,7 +2220,7 @@ int ooPopulateAliasList(OOCTXT *pctxt, OOAliases *pAliases,
                memFreePtr(pctxt, pAliasEntry);
                return OO_FAILED;
             }
-            strcpy(*(char**)pAliasEntry->u.dialedDigits, pAlias->value);
+            strcpy(*(char**)&pAliasEntry->u.dialedDigits, pAlias->value);
             bValid = TRUE;
             break;
          case T_H225AliasAddress_h323_ID:
@@ -2249,7 +2249,7 @@ int ooPopulateAliasList(OOCTXT *pctxt, OOAliases *pAliases,
                memFreePtr(pctxt, pAliasEntry);               
                return OO_FAILED;
             }
-            strcpy(*(char**)pAliasEntry->u.url_ID, pAlias->value);
+            strcpy(*(char**)&pAliasEntry->u.url_ID, pAlias->value);
             bValid = TRUE;
             break;
          case T_H225AliasAddress_email_ID:
@@ -2262,7 +2262,7 @@ int ooPopulateAliasList(OOCTXT *pctxt, OOAliases *pAliases,
                            "alias entry \n");
                return OO_FAILED;
             }
-            strcpy(*(char**)pAliasEntry->u.email_ID, pAlias->value);
+            strcpy(*(char**)&pAliasEntry->u.email_ID, pAlias->value);
             bValid = TRUE;
             break;
          default:
-- 
GitLab