]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add geolocation header parser
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 18 Apr 2013 21:41:34 +0000 (16:41 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 18 Apr 2013 21:41:34 +0000 (16:41 -0500)
src/mod/endpoints/mod_sofia/sofia.c
src/mod/endpoints/mod_sofia/sofia_glue.c

index 43de52e5db7fc4afd4843b4dc626447a086f2287..3060308a54d2c55e1b675d95a35d66eeb0fa531e 100644 (file)
@@ -8642,6 +8642,8 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
                                switch_channel_set_variable(channel, "push_channel_name", "true");
                        } else if (!strcasecmp(un->un_name, "X-FS-Support")) {
                                tech_pvt->x_freeswitch_support_remote = switch_core_session_strdup(session, un->un_value);
+                       } else if (!strcasecmp(un->un_name, "Geolocation")) {
+                               switch_channel_set_variable(channel, "sip_geolocation", un->un_value);
                        } else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2) || !strcasecmp(un->un_name, "User-to-User")) {
                                if (!zstr(un->un_value)) {
                                        char new_name[512] = "";
index 770e238ada00928c468ef132d62a9058810b9b7d..80683c90eefeb1e7bc33311a567911c6072c9251 100644 (file)
@@ -2026,6 +2026,10 @@ char *sofia_glue_get_extra_headers(switch_channel_t *channel, const char *prefix
                for (; hi; hi = hi->next) {
                        const char *name = (char *) hi->name;
                        char *value = (char *) hi->value;
+                       
+                       if (!strcasecmp(name, "sip_geolocation")) {
+                               stream.write_function(&stream, "Geolocation: %s\r\n", value);
+                       }
 
                        if (!strncasecmp(name, prefix, strlen(prefix))) {
                                if ( !exclude_regex || !(proceed = switch_regex_perform(name, exclude_regex, &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) {