[svn-commits] qwell: trunk r296 - in /trunk/asterisk-ooh323c/src: chan_h323.c ooh323cDriver.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Wed Sep 20 14:16:37 MST 2006


Author: qwell
Date: Wed Sep 20 16:16:37 2006
New Revision: 296

URL: http://svn.digium.com/view/asterisk-addons?rev=296&view=rev
Log:
chan_ooh323 packetization.

Issue #5588, patch by DEA.

Modified:
    trunk/asterisk-ooh323c/src/chan_h323.c
    trunk/asterisk-ooh323c/src/ooh323cDriver.c

Modified: trunk/asterisk-ooh323c/src/chan_h323.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/src/chan_h323.c?rev=296&r1=295&r2=296&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/src/chan_h323.c (original)
+++ trunk/asterisk-ooh323c/src/chan_h323.c Wed Sep 20 16:16:37 2006
@@ -2068,8 +2068,9 @@
    {
       sprintf(ip_port, "%s:%d", peer->ip, peer->port);
       ast_cli(fd, "%-15.15s%s\n", "Name: ", peer->name);
-      ast_codec_pref_string(&peer->prefs, formats, 512);
-      ast_cli(fd, "%-15.15s%s\n", "Format Prefs: ", formats);
+      ast_cli(fd, "%-15.15s%s", "Format Prefs: ", "(");
+      print_codec_to_cli(fd, &peer->prefs);
+      ast_cli(fd, ")\n");
       ast_cli(fd, "%-15.15s", "DTMF Mode: ");
       if(peer->dtmfmode & H323_DTMF_RFC2833)
          ast_cli(fd, "%s\n", "rfc2833");
@@ -2130,6 +2131,24 @@
    return RESULT_SUCCESS;
 }
 
+/*! \brief Print codec list from preference to CLI/manager */
+static void print_codec_to_cli(int fd, struct ast_codec_pref *pref)
+{
+	int x, codec;
+
+	for(x = 0; x < 32 ; x++) {
+		codec = ast_codec_pref_index(pref, x);
+		if (!codec)
+			break;
+		ast_cli(fd, "%s", ast_getformatname(codec));
+		ast_cli(fd, ":%d", pref->framing[x]);
+		if (x < 31 && ast_codec_pref_index(pref, x + 1))
+			ast_cli(fd, ",");
+		}
+	if (!x)
+		ast_cli(fd, "none");
+}
+
 static int ooh323_show_user(int fd, int argc, char *argv[])
 {
    struct ooh323_user *prev=NULL, *user=NULL;
@@ -2157,8 +2176,9 @@
    if(user)
    {
       ast_cli(fd, "%-15.15s%s\n", "Name: ", user->name);
-      ast_codec_pref_string(&user->prefs, formats, 512);
-      ast_cli(fd, "%-15.15s%s\n", "Format Prefs: ",formats);
+      ast_cli(fd, "%-15.15s%s", "Format Prefs: ", "(");
+      print_codec_to_cli(fd, &user->prefs);
+      ast_cli(fd, ")\n");
       ast_cli(fd, "%-15.15s", "DTMF Mode: ");
       if(user->dtmfmode & H323_DTMF_RFC2833)
          ast_cli(fd, "%s\n", "rfc2833");
@@ -2990,6 +3010,9 @@
    if(gH323Debug)
       ast_verbose("---   configure_local_rtp\n");
 
+   if (p->rtp){
+	ast_rtp_codec_setpref(p->rtp, &p->prefs);
+   }
 
    /* figure out our local RTP port and tell the H.323 stack about it*/
    ast_rtp_get_us(p->rtp, &us);

Modified: trunk/asterisk-ooh323c/src/ooh323cDriver.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/src/ooh323cDriver.c?rev=296&r1=295&r2=296&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/src/ooh323cDriver.c (original)
+++ trunk/asterisk-ooh323c/src/ooh323cDriver.c Wed Sep 20 16:16:37 2006
@@ -147,7 +147,7 @@
 int ooh323c_set_capability_for_call
    (ooCallData *call, struct ast_codec_pref *prefs, int capability, int dtmf)
 {
-   int ret, x;
+   int ret, x, txframes, rxframes;
    int format=0;
    if(gH323Debug)
      ast_verbose("\tAdding capabilities to call(%s, %s)\n", call->callType, 
@@ -167,7 +167,8 @@
          if(gH323Debug)
             ast_verbose("\tAdding g711 ulaw capability to call(%s, %s)\n", 
                                               call->callType, call->callToken);
-         ret= ooCallAddG711Capability(call, OO_G711ULAW64K, gtxframes, 
+	 txframes = prefs->framing[x];
+         ret= ooCallAddG711Capability(call, OO_G711ULAW64K, txframes, 
                                       grxframes, OORXANDTX, 
                                       &ooh323c_start_receive_channel,
                                       &ooh323c_start_transmit_channel,
@@ -179,8 +180,9 @@
          if(gH323Debug)
             ast_verbose("\tAdding g711 alaw capability to call(%s, %s)\n",
                                             call->callType, call->callToken);
-         ret= ooCallAddG711Capability(call, OO_G711ALAW64K, gtxframes, 
-                                      grxframes, OORXANDTX, 
+         txframes = prefs->framing[x];
+         ret= ooCallAddG711Capability(call, OO_G711ALAW64K, txframes, 
+                                     grxframes, OORXANDTX, 
                                      &ooh323c_start_receive_channel,
                                      &ooh323c_start_transmit_channel,
                                      &ooh323c_stop_receive_channel, 
@@ -192,7 +194,8 @@
          if(gH323Debug)
             ast_verbose("\tAdding g729A capability to call(%s, %s)\n",
                                             call->callType, call->callToken);
-         ret= ooCallAddG729Capability(call, OO_G729A, 6, 24, 
+         txframes = (prefs->framing[x])/10;
+         ret= ooCallAddG729Capability(call, OO_G729A, txframes, 24, 
                                      OORXANDTX, &ooh323c_start_receive_channel,
                                      &ooh323c_start_transmit_channel,
                                      &ooh323c_stop_receive_channel, 
@@ -201,7 +204,7 @@
          if(gH323Debug)
             ast_verbose("\tAdding g729 capability to call(%s, %s)\n",
                                             call->callType, call->callToken);
-         ret|= ooCallAddG729Capability(call, OO_G729, 6, 24, 
+         ret|= ooCallAddG729Capability(call, OO_G729, txframes, 24, 
                                      OORXANDTX, &ooh323c_start_receive_channel,
                                      &ooh323c_start_transmit_channel,
                                      &ooh323c_stop_receive_channel, 



More information about the svn-commits mailing list