提交 eead164c authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-5682

上级 3682e54d
...@@ -8437,15 +8437,13 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia ...@@ -8437,15 +8437,13 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
for (mp = sip->sip_multipart; mp; mp = mp->mp_next) { for (mp = sip->sip_multipart; mp; mp = mp->mp_next) {
if (mp->mp_payload && mp->mp_payload->pl_data && mp->mp_content_type && mp->mp_content_type->c_type) { if (mp->mp_payload && mp->mp_payload->pl_data && mp->mp_content_type && mp->mp_content_type->c_type) {
char *name = switch_core_session_strdup(session, mp->mp_content_type->c_type); char *name = switch_core_session_strdup(session, mp->mp_content_type->c_type);
char *p; char *encoded_name;
int len = (strlen(name) * 3) + 1;
for (p = name; p && *p; p++) {
if (*p == '/') { encoded_name = switch_core_session_alloc(session, len);
*p = '_'; switch_url_encode(name, encoded_name, len);
}
}
switch_channel_set_variable_name_printf(channel, mp->mp_payload->pl_data, SOFIA_MULTIPART_PREFIX "%s", name); switch_channel_set_variable_name_printf(channel, mp->mp_payload->pl_data, SOFIA_MULTIPART_PREFIX "_enc_%s", encoded_name);
} }
} }
} }
......
...@@ -115,6 +115,13 @@ char *sofia_media_get_multipart(switch_core_session_t *session, const char *pref ...@@ -115,6 +115,13 @@ char *sofia_media_get_multipart(switch_core_session_t *session, const char *pref
if (!strncasecmp(name, prefix, strlen(prefix))) { if (!strncasecmp(name, prefix, strlen(prefix))) {
const char *hname = name + strlen(prefix); const char *hname = name + strlen(prefix);
if (*hname == '_' && strncmp(hname, "_enc_", 4)) {
char *dname = switch_core_session_strdup(session, hname);
switch_url_decode(dname);
hname = dname;
}
if (*value == '~') { if (*value == '~') {
stream.write_function(&stream, "--%s\nContent-Type: %s\nContent-Length: %d\n%s\n", boundary, hname, strlen(value), value + 1); stream.write_function(&stream, "--%s\nContent-Type: %s\nContent-Length: %d\n%s\n", boundary, hname, strlen(value), value + 1);
} else { } else {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论