]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10061 [mod_verto] now it sends custom variables on incoming call via verto
authorAlexandr Popov <alexandr.popov@iqoption.com>
Wed, 22 Feb 2017 09:52:32 +0000 (12:52 +0300)
committerAlexandr Popov <sandpaper@yandex.ru>
Tue, 7 Mar 2017 08:42:17 +0000 (10:42 +0200)
src/mod/endpoints/mod_verto/mod_verto.c

index 2e0ea96610c962a9412e381fffc6bc3efe408d30..0f53f64ed75a5ad0be63eadbf12b99b67ed8a2d1 100644 (file)
@@ -1077,6 +1077,8 @@ static void set_call_params(cJSON *params, verto_pvt_t *tech_pvt) {
        const char *caller_id_number = NULL;
        const char *callee_id_name = NULL;
        const char *callee_id_number = NULL;
+       const char *prefix = "verto_h_";
+       switch_event_header_t *var = NULL;
 
        caller_id_name = switch_channel_get_variable(tech_pvt->channel, "caller_id_name");
        caller_id_number = switch_channel_get_variable(tech_pvt->channel, "caller_id_number");
@@ -1092,7 +1094,14 @@ static void set_call_params(cJSON *params, verto_pvt_t *tech_pvt) {
        cJSON_AddItemToObject(params, "display_direction",
                                                  cJSON_CreateString(switch_channel_direction(tech_pvt->channel) == SWITCH_CALL_DIRECTION_OUTBOUND ? "outbound" : "inbound"));
 
-
+       for (var = switch_channel_variable_first(tech_pvt->channel); var; var = var->next) {
+               const char *name = (char *) var->name;
+               char *value = (char *) var->value;
+               if (!strncasecmp(name, prefix, strlen(prefix))) {
+                       cJSON_AddItemToObject(params, name, cJSON_CreateString(value));
+               }
+       }
+       switch_channel_variable_last(tech_pvt->channel);
 
 }