]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
OPENZAP-28 pass opts from mod_openzap to ozmod_isdn
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 7 Oct 2008 15:27:51 +0000 (15:27 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 7 Oct 2008 15:27:51 +0000 (15:27 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@589 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/freetdm/mod_openzap/mod_openzap.c
libs/freetdm/src/ozmod/ozmod_isdn/ozmod_isdn.c
libs/freetdm/src/ozmod/ozmod_isdn/zap_isdn.h

index 7e8173702f6593d287ee6aa91c2c0f1d314d0782..e915c2d3683af9b0d89a602692d9eb6f6c7dd119 100644 (file)
@@ -1893,6 +1893,7 @@ static switch_status_t load_config(void)
                        if (zap_configure_span("isdn", span, on_clear_channel_signal, 
                                                                   "mode", mode, 
                                                                   "dialect", dialect,
+                                                                  "opts", opts,
                                                                   "q921loglevel", q921loglevel,
                                                                   "q931loglevel", q931loglevel,
                                                                   TAG_END) != ZAP_SUCCESS) {
index c226d72aec609c2e8129e10ad10bed33f6ed660d..ca6a7fdd65079e14f1b97998f8b64d6324f91063 100644 (file)
@@ -1726,11 +1726,11 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_isdn_configure_span)
                                dialect = Q931_Dialect_National;
                        }
                } else if (!strcasecmp(var, "opts")) {
-                       int *optp;
-                       if (!(optp = va_arg(ap, int *))) {
-                               break;
-                       }
-                       opts = isdn_data->opts = *optp;
+                       opts = va_arg(ap, uint32_t);
+            if  (opts >= ZAP_ISDN_OPT_MAX) {
+                return ZAP_FAIL;
+            }
+                       isdn_data->opts = opts;
                } else if (!strcasecmp(var, "tonemap")) {
                        if (!(val = va_arg(ap, char *))) {
                                break;
index 86a3f4015550304cbed09fcd45c8a46b78d6289b..cf45908364d63e84c67c13d78fd32fe3f20db8bd 100644 (file)
@@ -37,7 +37,9 @@
 
 typedef enum {
        ZAP_ISDN_OPT_NONE = 0,
-       ZAP_ISDN_OPT_SUGGEST_CHANNEL = (1 << 0)
+       ZAP_ISDN_OPT_SUGGEST_CHANNEL = (1 << 0),
+
+       ZAP_ISDN_OPT_MAX = (2 << 0)
 } zap_isdn_opts_t;
 
 typedef enum {