]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
use SWITCH_MESSAGE_INDICATE_UUID_CHANGE to change tokens in openzap when a uuid of...
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 22 Oct 2009 14:55:15 +0000 (14:55 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 22 Oct 2009 14:55:15 +0000 (14:55 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@846 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/openzap/mod_openzap/mod_openzap.c
libs/openzap/src/include/openzap.h
libs/openzap/src/zap_io.c

index 5477a9a47881773b02846cfd7f7d1cfcaa7b7d96..301fefcb84adfa92a1dab7d772d8a10061c0e923 100644 (file)
@@ -965,6 +965,11 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s
                        }
                }
                break;
+       case SWITCH_MESSAGE_INDICATE_UUID_CHANGE:
+               {
+                       zap_channel_replace_token(tech_pvt->zchan, msg->string_array_arg[0], msg->string_array_arg[1]);
+               }
+               break;
        default:
                break;
        }
index 084b2afe2175802515dad18998a270012e329da2..2c7d132b3be458fee25ad9fc8b44ab2724eb1c0e 100644 (file)
@@ -635,6 +635,7 @@ OZ_DECLARE(void) zap_channel_clear_needed_tones(zap_channel_t *zchan);
 OZ_DECLARE(zap_status_t) zap_channel_get_alarms(zap_channel_t *zchan);
 OZ_DECLARE(zap_status_t) zap_channel_send_fsk_data(zap_channel_t *zchan, zap_fsk_data_state_t *fsk_data, float db_level);
 OZ_DECLARE(zap_status_t) zap_channel_clear_token(zap_channel_t *zchan, const char *token);
+OZ_DECLARE(void) zap_channel_replace_token(zap_channel_t *zchan, const char *old_token, const char *new_token);
 OZ_DECLARE(zap_status_t) zap_channel_add_token(zap_channel_t *zchan, char *token, int end);
 OZ_DECLARE(zap_status_t) zap_channel_set_state(zap_channel_t *zchan, zap_channel_state_t state, int lock);
 OZ_DECLARE(zap_status_t) zap_span_load_tones(zap_span_t *span, const char *mapname);
index 2670c37ea7762bbafb73d21bbdcf934a45b374a2..e73f8bdd45d63ca08839caee0af9ed218c5605c6 100644 (file)
@@ -703,6 +703,20 @@ OZ_DECLARE(void) zap_channel_rotate_tokens(zap_channel_t *zchan)
        }
 }
 
+OZ_DECLARE(void) zap_channel_replace_token(zap_channel_t *zchan, const char *old_token, const char *new_token)
+{
+       int i;
+
+       if (zchan->token_count) {
+               for(i = 0; i < zchan->token_count; i++) {
+                       if (!strcmp(zchan->tokens[i], old_token)) {
+                               zap_copy_string(zchan->tokens[i], new_token, ZAP_TOKEN_STRLEN);
+                               break;
+                       }
+               }
+       }
+}
+
 OZ_DECLARE(zap_status_t) zap_channel_add_token(zap_channel_t *zchan, char *token, int end)
 {
        zap_status_t status = ZAP_FAIL;