]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
show signaling status on oz list
authorMoises Silva <moy@sangoma.com>
Wed, 25 Nov 2009 22:53:23 +0000 (22:53 +0000)
committerMoises Silva <moy@sangoma.com>
Wed, 25 Nov 2009 22:53:23 +0000 (22:53 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/branches/sangoma_boost@907 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/freetdm/mod_openzap/mod_openzap.c
libs/freetdm/src/zap_io.c

index 89e1e2a9f8c39c52d6cf30d32f37ba47417ea433..defdc25a8ae54f82952a914934f36ed257da1c9d 100644 (file)
@@ -2742,35 +2742,64 @@ SWITCH_STANDARD_API(oz_function)
                for (j = 0 ; j < ZAP_MAX_SPANS_INTERFACE; j++) {
                        if (SPAN_CONFIG[j].span) {
                                const char *flags = "none";
+                               zap_channel_sig_status_t chanstatus;
 
                                if (SPAN_CONFIG[j].analog_options & ANALOG_OPTION_3WAY) {
                                        flags = "3way";
                                } else if (SPAN_CONFIG[j].analog_options & ANALOG_OPTION_CALL_SWAP) {
                                        flags = "call swap";
                                }
-
-                               stream->write_function(stream,
-                                                                          "+OK\n"
-                                                                          "span: %u (%s)\n"
-                                                                          "type: %s\n"
-                                                                          "chan_count: %u\n"
-                                                                          "dialplan: %s\n"
-                                                                          "context: %s\n"
-                                                                          "dial_regex: %s\n"
-                                                                          "fail_dial_regex: %s\n"
-                                                                          "hold_music: %s\n"
-                                                                          "analog_options %s\n",
-                                                                          j,
-                                                                          SPAN_CONFIG[j].span->name,
-                                                                          SPAN_CONFIG[j].type,
-                                                                          SPAN_CONFIG[j].span->chan_count,
-                                                                          SPAN_CONFIG[j].dialplan,
-                                                                          SPAN_CONFIG[j].context,
-                                                                          SPAN_CONFIG[j].dial_regex,
-                                                                          SPAN_CONFIG[j].fail_dial_regex,
-                                                                          SPAN_CONFIG[j].hold_music,
-                                                                          flags
-                                                                          );
+                               
+                               /* check signaling status just in the first span channel */
+                               if ((ZAP_SUCCESS == zap_channel_get_sig_status(SPAN_CONFIG[j].span->channels[1], &chanstatus))) {
+                                       stream->write_function(stream,
+                                                                                  "+OK\n"
+                                                                                  "span: %u (%s)\n"
+                                                                                  "type: %s\n"
+                                                                                  "signaling_status: %s\n"
+                                                                                  "chan_count: %u\n"
+                                                                                  "dialplan: %s\n"
+                                                                                  "context: %s\n"
+                                                                                  "dial_regex: %s\n"
+                                                                                  "fail_dial_regex: %s\n"
+                                                                                  "hold_music: %s\n"
+                                                                                  "analog_options %s\n",
+                                                                                  j,
+                                                                                  SPAN_CONFIG[j].span->name,
+                                                                                  SPAN_CONFIG[j].type,
+                                                                                  zap_sig_status2str(chanstatus),
+                                                                                  SPAN_CONFIG[j].span->chan_count,
+                                                                                  SPAN_CONFIG[j].dialplan,
+                                                                                  SPAN_CONFIG[j].context,
+                                                                                  SPAN_CONFIG[j].dial_regex,
+                                                                                  SPAN_CONFIG[j].fail_dial_regex,
+                                                                                  SPAN_CONFIG[j].hold_music,
+                                                                                  flags
+                                                                                  );
+                               } else {
+                                       stream->write_function(stream,
+                                                                                  "+OK\n"
+                                                                                  "span: %u (%s)\n"
+                                                                                  "type: %s\n"
+                                                                                  "chan_count: %u\n"
+                                                                                  "dialplan: %s\n"
+                                                                                  "context: %s\n"
+                                                                                  "dial_regex: %s\n"
+                                                                                  "fail_dial_regex: %s\n"
+                                                                                  "hold_music: %s\n"
+                                                                                  "analog_options %s\n",
+                                                                                  j,
+                                                                                  SPAN_CONFIG[j].span->name,
+                                                                                  SPAN_CONFIG[j].type,
+                                                                                  SPAN_CONFIG[j].span->chan_count,
+                                                                                  SPAN_CONFIG[j].dialplan,
+                                                                                  SPAN_CONFIG[j].context,
+                                                                                  SPAN_CONFIG[j].dial_regex,
+                                                                                  SPAN_CONFIG[j].fail_dial_regex,
+                                                                                  SPAN_CONFIG[j].hold_music,
+                                                                                  flags
+                                                                                  );
+                               }
                        }
                }
        } else if (!strcasecmp(argv[0], "stop") || !strcasecmp(argv[0], "start")) {
index 75fa7339db7faf2e2279d34fd00dae6a3821697b..f4627ea7fe4a412f2f8460518b55bbdc2f809535 100644 (file)
@@ -1259,18 +1259,15 @@ OZ_DECLARE(zap_status_t) zap_channel_outgoing_call(zap_channel_t *zchan)
 
 OZ_DECLARE(zap_status_t) zap_channel_get_sig_status(zap_channel_t *zchan, zap_channel_sig_status_t *sigstatus)
 {
-       zap_status_t status;
-
        zap_assert(zchan != NULL, ZAP_FAIL, "Null channel\n");
        zap_assert(sigstatus != NULL, ZAP_FAIL, "Null sig status");
        
        if (zchan->span->get_sig_status) {
-               status = zchan->span->get_sig_status(zchan, sigstatus);
+               return zchan->span->get_sig_status(zchan, sigstatus);
        } else {
                zap_log(ZAP_LOG_ERROR, "get_sig_status method not implemented!\n");
+               return ZAP_FAIL;
        }
-       
-       return ZAP_FAIL;
 }
 
 OZ_DECLARE(zap_status_t) zap_channel_done(zap_channel_t *zchan)