Re: [Users] mms-to-local-copy-handler not working?
You're right! CVS updated. Mea Culpa. P. On May 14, 2006, at 17:28, Deon van der Merwe wrote: Hi, I have a VASP configured to also receive a copy of all the MMS's delivered to mobiles. But this is not working. From the code it looks like this is only done if the recipient is a IP address. Am I misunderstanding this feature? My current understanding is that this feature will send a copy of mobile terminated message to a VASP. My config: group = mms-vasp vasp-id = localcopy type = soap short-code = 113 vasp-username = localcopy vasp-password = localcopy vasp-url = http://10.201.47.17:50013/ mmsc-username = localcopy mmsc-password = localcopy mms-to-local-copy-handler = true The code in question: mmsc/mmsglobalsender.c /* If it is an IP, send to mobile handler, else if number, look for recipient. */ if (j 0 j - 1 + sizeof /TYPE=PLMN == len) phonenum = octstr_copy(to-rcpt, 0, j); else if (k 0 k + sizeof /TYPE=IPv == len) { if (settings-mms2mobile) { /* Send a copy to this VASP. */ Octstr *xerr = NULL; int res = mms_sendtovasp(settings- mms2mobile, e-from, to-rcpt, e-msgId, msg, err); info(0, %s Global Queue MMS Send: Local Msg copy to VASP (%s) - From %s, to %s, msgsize=%ld: err=%s, SEND_ERROR_STR(res), octstr_get_cstr(settings-mms2mobile- id), octstr_get_cstr(e-from), octstr_get_cstr(to-rcpt), e-msize, xerr ? octstr_get_cstr(xerr) : (null)); if (xerr) octstr_destroy(xerr); } res = mms_sendtomobile(e-from, to-rcpt, e-subject, e- fromproxy, e-msgId, e-expiryt, msg, e-dlr, err); sent = 1; goto done; ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
[Users] x-wap-profile missing/required
Hi, We are tracing a problem with a Motorola V3i submitting a message to mbuni. Thing is that the phone does not include the x-wap-profile HTTP header. So: the phone must be broken!!! Reading the specs [ETSI TS 126 234 V6.6.0 (2005-12)], it turns out (to my surprise) that the x-wap-profile is not a required header. quote 5.2.5 Signalling of profile information between client and server When a PSS client or server support capability exchange it shall support the profile information transport over both HTTP and RTSP between client and server as defined in clause 9.1 (including its subsections) of the WAP 2.0 UAProfspecification [40] with the following additions: - The x-wap-profile and x-wap-profile-diff headers may not be present in all HTTP or RTSP request. That is, the requirement to send this header in all requests has been relaxed. /quote Here is how mbuni fails: 2006-05-15 17:54:14 [23380] [0] PANIC: gwlib/octstr.c:2340: seems_valid_real: Assertion `ostr-len + 1 = ostr-size' failed. (Called from gwl ib/octstr.c:1310:octstr_strip_nonalphanums.) 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(gw_panic+0x175) [0x8085dba] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x808d341] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(octstr_strip_nonalphanums+0x2c) [0x808aa11] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(main+0x24c) [0x8052afc] 2006-05-15 17:54:14 [23380] [0] PANIC: /lib/libc.so.6(__libc_start_main+0xab) [0x4035144b] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x80527b1] This is where it goes wrong: h.vasp = NULL; h.profile_url = NULL; h.ua = http_header_value(h.headers, octstr_imm(User-Agent)); /* Get the profile URL and store it. Has effect of fetching if missing. */ if ((h.profile_url = http_header_value(h.headers, octstr_imm(X-Wap-Profile))) == NULL) h.profile_url = http_header_value(h.headers, octstr_imm(Profile)); octstr_strip_nonalphanums(h.profile_url); So, is there any way in which we can include a default profile into the configuration? Or, maybe someone else has a better option/solution? ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] x-wap-profile missing/required
Yes there is a way and in fact it is in there IMO, however obviously along the way a bug crept in. If the wap-profile URL is missing, Mbuni uses the HTTP Accept headers to try and find a reasonable compromise. I will do a fix and update. P. On May 15, 2006, at 19:34, Deon van der Merwe wrote: Hi, We are tracing a problem with a Motorola V3i submitting a message to mbuni. Thing is that the phone does not include the x-wap-profile HTTP header. So: the phone must be broken!!! Reading the specs [ETSI TS 126 234 V6.6.0 (2005-12)], it turns out (to my surprise) that the x-wap-profile is not a required header. quote 5.2.5 Signalling of profile information between client and server When a PSS client or server support capability exchange it shall support the profile information transport over both HTTP and RTSP between client and server as defined in clause 9.1 (including its subsections) of the WAP 2.0 UAProfspecification [40] with the following additions: - The x-wap-profile and x-wap-profile-diff headers may not be present in all HTTP or RTSP request. That is, the requirement to send this header in all requests has been relaxed. /quote Here is how mbuni fails: 2006-05-15 17:54:14 [23380] [0] PANIC: gwlib/octstr.c:2340: seems_valid_real: Assertion `ostr-len + 1 = ostr-size' failed. (Called from gwl ib/octstr.c:1310:octstr_strip_nonalphanums.) 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(gw_panic+0x175) [0x8085dba] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x808d341] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(octstr_strip_nonalphanums+0x2c) [0x808aa11] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(main+0x24c) [0x8052afc] 2006-05-15 17:54:14 [23380] [0] PANIC: /lib/libc.so.6(__libc_start_main+0xab) [0x4035144b] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x80527b1] This is where it goes wrong: h.vasp = NULL; h.profile_url = NULL; h.ua = http_header_value(h.headers, octstr_imm(User- Agent)); /* Get the profile URL and store it. Has effect of fetching if missing. */ if ((h.profile_url = http_header_value(h.headers, octstr_imm(X-Wap-Profile))) == NULL) h.profile_url = http_header_value(h.headers, octstr_imm(Profile)); octstr_strip_nonalphanums(h.profile_url); So, is there any way in which we can include a default profile into the configuration? Or, maybe someone else has a better option/solution? ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] x-wap-profile missing/required
fixed hopefully in CVS. Please let me know. On May 15, 2006, at 19:34, Deon van der Merwe wrote: Hi, We are tracing a problem with a Motorola V3i submitting a message to mbuni. Thing is that the phone does not include the x-wap-profile HTTP header. So: the phone must be broken!!! Reading the specs [ETSI TS 126 234 V6.6.0 (2005-12)], it turns out (to my surprise) that the x-wap-profile is not a required header. quote 5.2.5 Signalling of profile information between client and server When a PSS client or server support capability exchange it shall support the profile information transport over both HTTP and RTSP between client and server as defined in clause 9.1 (including its subsections) of the WAP 2.0 UAProfspecification [40] with the following additions: - The x-wap-profile and x-wap-profile-diff headers may not be present in all HTTP or RTSP request. That is, the requirement to send this header in all requests has been relaxed. /quote Here is how mbuni fails: 2006-05-15 17:54:14 [23380] [0] PANIC: gwlib/octstr.c:2340: seems_valid_real: Assertion `ostr-len + 1 = ostr-size' failed. (Called from gwl ib/octstr.c:1310:octstr_strip_nonalphanums.) 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(gw_panic+0x175) [0x8085dba] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x808d341] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(octstr_strip_nonalphanums+0x2c) [0x808aa11] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy(main+0x24c) [0x8052afc] 2006-05-15 17:54:14 [23380] [0] PANIC: /lib/libc.so.6(__libc_start_main+0xab) [0x4035144b] 2006-05-15 17:54:14 [23380] [0] PANIC: /usr/local/bin/mmsproxy [0x80527b1] This is where it goes wrong: h.vasp = NULL; h.profile_url = NULL; h.ua = http_header_value(h.headers, octstr_imm(User- Agent)); /* Get the profile URL and store it. Has effect of fetching if missing. */ if ((h.profile_url = http_header_value(h.headers, octstr_imm(X-Wap-Profile))) == NULL) h.profile_url = http_header_value(h.headers, octstr_imm(Profile)); octstr_strip_nonalphanums(h.profile_url); So, is there any way in which we can include a default profile into the configuration? Or, maybe someone else has a better option/solution? ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] x-wap-profile missing/required
Hi Paul, On 5/15/06, Paul Bagyenda [EMAIL PROTECTED] wrote: fixed hopefully in CVS. Please let me know. yup- it is working. Thanks allot Paul. ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
[Users] Better documentation with examples requ.
Dear All (Esp. Documentation writers of Mbuni),Is there a better written documentation for Mbuni? Kannel documentation wasn't the best, but at least there were examples. Mbuni user guide is a big document, but severely lacks in any examples. A person new to gateways, and protocols, can easily get lost. Dear Sirs, you have done a great job providing an open-source gateway/MMSC. But look at W3schools tutorials. They are so well written, one can pick up all major technologies in a fortnight. Someone, please help,KM ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] Better documentation with examples requ.
It is a point well-taken, however... there are always competing demands on those of us the lead developers. As such, we can't do a great job at everything. Only natural. If you want to take a stab at improving the documentation, your efforts would be most welcome, and I would be glad to fill in the gaps to enable you or any other do so. P. On May 16, 2006, at 06:59, kartikay malhotra wrote: Dear All (Esp. Documentation writers of Mbuni), Is there a better written documentation for Mbuni? Kannel documentation wasn't the best, but at least there were examples. Mbuni user guide is a big document, but severely lacks in any examples. A person new to gateways, and protocols, can easily get lost. Dear Sirs, you have done a great job providing an open-source gateway/MMSC. But look at W3schools tutorials. They are so well written, one can pick up all major technologies in a fortnight. Someone, please help, KM ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] mbuni.conf + fake mms ? MMS file
Hi, On 5/16/06, kartikay malhotra [EMAIL PROTECTED] wrote: Hi! I intend to use Mbuni as a gateway connected to an operator MMC. Once I receive MMS at my gateway, I would want to send it to a HTTP Server (preferably intact). There I would want to dump it in a database. I can handle the server and DB part. Wat I do not know: 1. Format of incoming MMS; I mean protocol. (HTTP over TCP/IP)? 2. How to handle that MMS? I think that here I can help a little... the message sent to you by mbuni MMSC is formatter as MM7/HTTP/TCPIP. To receive these messages, I use the openwave SDK. My receiver class looks somethinh like this: class MessageReceiver extends com.openwave.mms.mm7.MessageListenerAdapter { protected com.openwave.mms.mm7.RelayConnection mReceiveConnection = null; public MessageReceiver() { try { mReceiveConnection = com.openwave.mms.mm7.RelayConnection.createReceiver(mReceivePort, false); mReceiveConnection.setMessageListener(this); } catch (java.lang.Exception vException) { mLogger.error(vException.getMessage(), vException); } } public com.openwave.mms.mm7.Response processDeliverRequest( com.openwave.mms.mm7.DeliverRequest deliverRequest) { try { mLogger.debug(TransactionID: + deliverRequest.getTransactionID()); mLogger.debug(Sender: + deliverRequest.getSender()); java.util.Vector vRecipients = deliverRequest.getRecipients(); for (int i = 0; i vRecipients.size(); ++i) { mLogger.debug(recipient: + ((com.openwave.mms.mm7.Recipient) vRecipients.get(i)).getAddress()); } mLogger.debug(Subject: + deliverRequest.getSubject()); javax.mail.internet.MimeBodyPart part = deliverRequest.getRawContent(); mLogger.debug(ContentType: + part.getContentType()); mLogger.debug(Filename: + part.getFileName()); java.lang.StringBuffer vContentBuffer = new java.lang.StringBuffer(); try { java.io.InputStream vContentInput = part.getInputStream(); while (true) { int vByte = vContentInput.read(); if (vByte == -1) { break; } else { vContentBuffer.append((char) vByte); } } } catch (java.io.IOException vException) { mLogger.error(vException.getMessage(), vException); } int vSequence = (int) mReceiveSequence.next(); java.lang.String vContent = vContentBuffer.toString(); java.lang.String vFilename = saveFile(part.getFileName(), vSequence, vContent); } catch (javax.mail.MessagingException vException) { mLogger.error(vException.getMessage(), vException); } catch (com.openwave.mms.mm7.APIException vException) { mLogger.error(vException.getLocalizedMessage() + ( + vException.getErrorCode() + )); mLogger.error(vException.getMessage(), vException); } catch (java.lang.Exception vException) { mLogger.error(vException.getMessage(), vException); } // create a response object and send it back to the Openwave MMSC relay com.openwave.mms.mm7.DeliverResponse response = new com.openwave.mms.mm7.DeliverResponse(); response.setStatusCode(com.openwave.mms.mm7.ErrorCode.SUCCESS); response.setStatusText(got it!); return response; } protected java.lang.String saveFile( java.lang.String aFilename, int aSequence, java.lang.String aContent) { java.lang.String vFilename = mFileCacheDirectory + aSequence + - + aFilename; mLogger.debug(filename for + aFilename + = + vFilename); try { java.io.FileWriter vWriter = new java.io.FileWriter(vFilename); vWriter.write(aContent); vWriter.flush(); vWriter.close(); } catch (java.lang.Exception vException) { mLogger.error(vException.getMessage(), vException); } return vFilename; } } ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org
Re: [Users] Better documentation with examples requ.
Very good. I will answer ALL and any questions you have in this area, and look forward to a spiffier documentation as dividend!Paul.On May 16, 2006, at 08:20, kartikay malhotra wrote:Ok Paul,I will do it. I've worked on Open source S/W for the past year. I have never contributed anything. Its time I should do my part. Problem is, I am struggling with Mbuni myself. So the deal is, you or anyone else would send me examples to start out on Mbuni. How to set up fake mmsc, and receive mms. How to create and decode mms etc. (requests I've made in my previous mail).As soon as I pick up on the basics, I will try out stuff. Once I feel I have some expertise, I shall write a good documentation. If someone wants, they can improve it further and put it up along with the existing docs. Thanks and waiting :)KMOn 5/15/06, Paul Bagyenda [EMAIL PROTECTED] wrote: It is a point well-taken, however... there are always competingdemands on those of us the lead developers. As such, we can't do agreat job at everything. Only natural. If you want to take a stab at improving the documentation, your efforts would be most welcome, and I would be glad to fill in thegaps to enable you or any other do so.P.On May 16, 2006, at 06:59, kartikay malhotra wrote: Dear All (Esp. Documentation writers of Mbuni), Is there a better written documentation for Mbuni? Kannel documentation wasn't the best, but at least there were examples. Mbuni user guide is a big document, but severely lacks in any examples. A person new to gateways, and protocols, can easily get lost. Dear Sirs, you have done a great job providing an open-source gateway/MMSC. But look at W3schools tutorials. They are so well written, one can pick up all major technologies in a fortnight. Someone, please help, KM ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org___ Users mailing listUsers@mbuni.orghttp://mbuni.org/mailman/listinfo/users_mbuni.org___Users mailing listUsers@mbuni.orghttp://mbuni.org/mailman/listinfo/users_mbuni.org ___ Users mailing list Users@mbuni.org http://mbuni.org/mailman/listinfo/users_mbuni.org