- More mmsbox fixes to please Ericsson MMC
- Added 'vasid' send-mms URL parameter
This commit is contained in:
parent
dfc9f52994
commit
ef53251db3
|
@ -2349,6 +2349,16 @@ faked-sender = 100<br>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td valign=top >
|
||||||
|
<tt>vasid</tt>
|
||||||
|
</td>
|
||||||
|
<td valign=top >
|
||||||
|
This will be passed on the MMC as the VASID parameter in the
|
||||||
|
MM7/SOAP message. If not provided, defaults to <tt>sendmms-user</tt>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -594,7 +594,7 @@ int mm7_soapmsg_to_httpmsg(MSoapMsg_t *m, List **hdrs, Octstr **body)
|
||||||
http_header_remove_all(c->headers, "Content-ID");
|
http_header_remove_all(c->headers, "Content-ID");
|
||||||
http_header_add(c->headers, "Content-ID", octstr_get_cstr(cloc_str));
|
http_header_add(c->headers, "Content-ID", octstr_get_cstr(cloc_str));
|
||||||
|
|
||||||
http_header_add(xml->headers, "Content-Type", "text/xml");
|
http_header_add(xml->headers, "Content-Type", "\"text/xml\"");
|
||||||
http_header_add(xml->headers, "Content-ID", octstr_get_cstr(envloc));
|
http_header_add(xml->headers, "Content-ID", octstr_get_cstr(envloc));
|
||||||
xml->body = headers_to_soapxml(hh);
|
xml->body = headers_to_soapxml(hh);
|
||||||
|
|
||||||
|
@ -603,20 +603,14 @@ int mm7_soapmsg_to_httpmsg(MSoapMsg_t *m, List **hdrs, Octstr **body)
|
||||||
|
|
||||||
http_destroy_headers(hh);
|
http_destroy_headers(hh);
|
||||||
|
|
||||||
ctype = octstr_format("multipart/related"
|
ctype = octstr_format("multipart/related; type=\"text/xml\"; start=\"%S\"",
|
||||||
|
|
||||||
"; start=\"%S\""
|
|
||||||
#if 1
|
|
||||||
"; type=text/xml"
|
|
||||||
#endif
|
|
||||||
,
|
|
||||||
envloc);
|
envloc);
|
||||||
|
|
||||||
octstr_destroy(envloc);
|
octstr_destroy(envloc);
|
||||||
octstr_destroy(cloc);
|
octstr_destroy(cloc);
|
||||||
octstr_destroy(cloc_str);
|
octstr_destroy(cloc_str);
|
||||||
} else {
|
} else {
|
||||||
ctype = octstr_imm("text/xml");
|
ctype = octstr_imm("\"text/xml\"");
|
||||||
mime->body = headers_to_soapxml(m->envelope);
|
mime->body = headers_to_soapxml(m->envelope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -909,7 +903,7 @@ MSoapMsg_t *mm7_mmsmsg_to_soap(MmsMsg *msg, Octstr *from, List *xto,
|
||||||
if (vaspid)
|
if (vaspid)
|
||||||
http_header_add(m->envelope, "VASPID", vaspid);
|
http_header_add(m->envelope, "VASPID", vaspid);
|
||||||
if (vasid)
|
if (vasid)
|
||||||
http_header_add(m->envelope, "VASID", vaspid);
|
http_header_add(m->envelope, "VASID", vasid);
|
||||||
|
|
||||||
if ((s = mms_get_header_value(msg, octstr_imm("X-Mms-Message-Class"))) != NULL) {
|
if ((s = mms_get_header_value(msg, octstr_imm("X-Mms-Message-Class"))) != NULL) {
|
||||||
http_header_add(m->envelope, "MessageClass", octstr_get_cstr(s));
|
http_header_add(m->envelope, "MessageClass", octstr_get_cstr(s));
|
||||||
|
|
|
@ -87,7 +87,7 @@ static int free_envelope(MmsEnvelope *e, int removefromqueue);
|
||||||
* b - billed amount.
|
* b - billed amount.
|
||||||
* r - whether delivery receipts are required or not.
|
* r - whether delivery receipts are required or not.
|
||||||
* M - Application specific data (string)
|
* M - Application specific data (string)
|
||||||
* V - VASID -- from VASP
|
* V - VASPID -- from VASP
|
||||||
* v - vasid -- from VASP
|
* v - vasid -- from VASP
|
||||||
* U - url1 -- e.g. for delivery report
|
* U - url1 -- e.g. for delivery report
|
||||||
* u - url2 -- e.g. for read report
|
* u - url2 -- e.g. for read report
|
||||||
|
|
|
@ -893,8 +893,7 @@ static int make_and_queue_msg(Octstr *data, Octstr *ctype, List *reply_headers,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
} else { /* all others, make the message as-is and hope for the best! */
|
} else { /* all others, make the message as-is and hope for the best! */
|
||||||
http_header_add(me->headers, "Content-Type", octstr_get_cstr(ctype));
|
http_header_add(me->headers, "Content-Type", octstr_get_cstr(ctype));
|
||||||
|
|
||||||
me->body = octstr_duplicate(data);
|
me->body = octstr_duplicate(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1047,7 +1046,8 @@ static void sendmms_func(void *unused)
|
||||||
List *lto = NULL, *rh = http_create_empty_headers();
|
List *lto = NULL, *rh = http_create_empty_headers();
|
||||||
Octstr *rb = NULL, *base_url = octstr_imm("http://localhost");
|
Octstr *rb = NULL, *base_url = octstr_imm("http://localhost");
|
||||||
int i, n, res = 0;
|
int i, n, res = 0;
|
||||||
|
Octstr *vasid = http_cgi_variable(cgivars, "vasid");
|
||||||
|
|
||||||
if ((data = http_cgi_variable(cgivars, "text")) != NULL) { /* text. */
|
if ((data = http_cgi_variable(cgivars, "text")) != NULL) { /* text. */
|
||||||
Octstr *charset = http_cgi_variable(cgivars, "charset");
|
Octstr *charset = http_cgi_variable(cgivars, "charset");
|
||||||
|
|
||||||
|
@ -1105,7 +1105,8 @@ static void sendmms_func(void *unused)
|
||||||
/* Requests to make_and_queue below can block, but for now we don't care. */
|
/* Requests to make_and_queue below can block, but for now we don't care. */
|
||||||
if (ctype && data && !rb) { /* only send if no error. */
|
if (ctype && data && !rb) { /* only send if no error. */
|
||||||
res = make_and_queue_msg(data, ctype, rh, base_url, URL_TYPE, NULL,
|
res = make_and_queue_msg(data, ctype, rh, base_url, URL_TYPE, NULL,
|
||||||
octstr_imm("sendmms-user"), u->faked_sender,
|
vasid ? vasid : octstr_imm("sendmms-user"),
|
||||||
|
u->faked_sender,
|
||||||
1, &err);
|
1, &err);
|
||||||
http_destroy_headers(rh);
|
http_destroy_headers(rh);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
|
@ -1122,6 +1123,8 @@ static void sendmms_func(void *unused)
|
||||||
octstr_destroy(base_url);
|
octstr_destroy(base_url);
|
||||||
if (ctype)
|
if (ctype)
|
||||||
octstr_destroy(ctype);
|
octstr_destroy(ctype);
|
||||||
|
if (vasid)
|
||||||
|
octstr_destroy(vasid);
|
||||||
} else {
|
} else {
|
||||||
http_send_reply(client, HTTP_UNAUTHORIZED, hh,
|
http_send_reply(client, HTTP_UNAUTHORIZED, hh,
|
||||||
octstr_imm("Authentication failed"));
|
octstr_imm("Authentication failed"));
|
||||||
|
|
Loading…
Reference in New Issue