UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    The MMS lost story

    Scheduled Pinned Locked Moved OS
    133 Posts 16 Posters 54.9k Views 6 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • jezekJ Offline
        jezek @Fla
        last edited by jezek

        @Fla said in The MMS lost story:

        ...allowing me to now that I received a MMS when I don't have internet turned on and with a link to actually download it.

        In my country, this service is covered by operator. I seldom turn on mobile data. Without it I can't receive MMS, as you stated, too. But after a day an SMS from my operator comes, with text that I missed an MMS and it provides me an link (with password) where I can download it.

        Edit: typo

        jEzEk

        lduboeufL 1 Reply Last reply Reply Quote 0
        • lduboeufL Offline
          lduboeuf @jezek
          last edited by

          @jezek I saw that you like the go lang on your profile, do you know nuntium ( the mms agent) is written in go ?

          jezekJ 1 Reply Last reply Reply Quote 0
          • jezekJ Offline
            jezek @lduboeuf
            last edited by

            @lduboeuf said in The MMS lost story:

            @jezek I saw that you like the go lang on your profile, do you know nuntium ( the mms agent) is written in go ?

            No, I didn't know. I have no firm comprehension how the message stack works. But, maybe I can help, if you point me in the right direction. What problem do you want to solve?

            jEzEk

            lduboeufL 1 Reply Last reply Reply Quote 0
            • lduboeufL Offline
              lduboeuf @jezek
              last edited by

              @jezek said in The MMS lost story:

              No, I didn't know. I have no firm comprehension how the message stack works. But, maybe I can help, if you point me in the right direction. What problem do you want to solve?

              Well the final goal for MMS retrieving issue is to provide a deferred download mechanism.
              Currently nuntium even if Cellular-data is off try to fetch the mms and fail silently if any issue.
              We would need to store the incoming WAP push notification, and propagate the issue to upper layer so that it can be tried later by user action.

              jezekJ 1 Reply Last reply Reply Quote 0
              • jezekJ Offline
                jezek @lduboeuf
                last edited by

                @lduboeuf said in The MMS lost story:

                Well the final goal for MMS retrieving issue is to provide a deferred download mechanism.
                Currently nuntium even if Cellular-data is off try to fetch the mms and fail silently if any issue.
                We would need to store the incoming WAP push notification, and propagate the issue to upper layer so that it can be tried later by user action.

                To be sure, we are on the same page, you are reffering to https://github.com/ubports/nuntium repository, right? Have you any exact issue in mind?

                A few questions for previous maintainers or just people of knowledge, so I don't have to search and can jump on the train faster.

                • How to compile and test nuntium. Is there any special way? What is the best pratice? Compiling on computer, then transfer files? I have only one phone and with UT as main driver and I don't want to break it for long time.
                • Is there any documentation/specification for MMS available?

                jEzEk

                1 Reply Last reply Reply Quote 0
                • lduboeufL Offline
                  lduboeuf
                  last edited by lduboeuf

                  @jezek said in The MMS lost story:

                  To be sure, we are on the same page, you are reffering to https://github.com/ubports/nuntium repository, right?

                  Yes

                  Have you any exact issue in mind?

                  See issues on this repo, the more important one is the deferred download (https://github.com/ubports/nuntium/issues/1)

                  A few questions for previous maintainers or just people of knowledge, so I don't have to search and can jump on the train faster.

                  How to compile and test nuntium. Is there any special way? What is the best pratice? Compiling on computer, then transfer files? I have only one phone and with UT as main driver and I don't want to break it for long time.

                  Normally it compiles with crossbuilder, but i was not lucky last time šŸ˜• , or by making a PR, the CI will build nuntium for you and then you can add it with the ubports-qa script.

                  Is there any documentation/specification for MMS available?

                  See architecture in the Readme and/or: http://docs.ubports.com/en/latest/systemdev/mms-infrastructure.html ( note that this doc is more a specification than the actual way it works; especially talking about the Incoming MMS workflow )

                  1 Reply Last reply Reply Quote 1
                  • jezekJ Offline
                    jezek
                    last edited by

                    @lduboeuf thanks. I've cloned the repo locally and managed to get testcoverage script working.

                    $ ./scripts/testcoverage.sh                           
                    ?   	_/home/jezek/Projects/nuntium/storage	[no test files]
                    # _/home/jezek/Projects/nuntium/ofono
                    ofono/manager.go:100: Print call has possible formatting directive %s
                    ofono/push.go:105: Errorf call needs 2 args but has 3 args
                    ofono/pushagent.go:86: Print call has possible formatting directive %s
                    FAIL	_/home/jezek/Projects/nuntium/ofono [build failed]
                    FAIL
                    ?   	_/home/jezek/Projects/nuntium/telepathy	[no test files]
                    ?   	_/home/jezek/Projects/nuntium/test	[no test files]
                    ?   	_/home/jezek/Projects/nuntium/cmd/nuntium-inject-push	[no test files]
                    ?   	_/home/jezek/Projects/nuntium/cmd/nuntium-decode-cli	[no test files]
                    ?   	_/home/jezek/Projects/nuntium/cmd/nuntium	[no test files]
                    ok  	_/home/jezek/Projects/nuntium/mms	0.010s	coverage: 45.3% of statements
                    

                    It is also possible to build cmd/nuntium using standart go build procedure.

                    I will investigate the ubports-qa script, to see what it is doing, cause I don't want to push, then wait for github to compile and install via script after every change. I also see couple of test tools in the project dir and a lot of reading stuff.

                    @Flohack I see, you contributed to nuntium project. Do you have any insights, how to test changes, or do you know anybody who can give me a quick tutorial?

                    jEzEk

                    1 Reply Last reply Reply Quote 0
                    • lduboeufL Offline
                      lduboeuf
                      last edited by lduboeuf

                      @jezek said in The MMS lost story:

                      I will investigate the ubports-qa script, to see what it is doing, cause I don't want to push, then wait for github to compile and install via script after every change. I also see couple of test tools in the project dir and a lot of reading stuff.

                      The ubports-qa will not help you build it locally. You have to look at crossbuilder https://github.com/ubports/crossbuilder, it used to work, but i had no success last time ( some dependencies need to be added of course with crossbuilder inst-foreign ... )

                      jezekJ 1 Reply Last reply Reply Quote 1
                      • lduboeufL Offline
                        lduboeuf
                        last edited by

                        Another question, should Ubports still maintain nuntium instead of moving to a more mainstream mms service ( if any ) ?

                        KenedaK 1 Reply Last reply Reply Quote 0
                        • jezekJ Offline
                          jezek @lduboeuf
                          last edited by

                          Progress report:

                          @lduboeuf said in The MMS lost story:

                          The ubports-qa will not help you build it locally.

                          Yes, I know that. I just wanted to see, what it does. It uses apt command to install packages. The package is compiled on a server to a deb package.

                          So, the build process for nuntium is described in repos ./debian/ folder. Upon investigation I figured out it installs only 2 files. A binary to /usr/bin/nuntium and /usr/share/upstart/sessions/nuntium.conf which is an config for upstart.

                          The binary nuntium can be compiled from the repos ./cmd/nuntium/ folder using GOOS=linux GOARCH=arm go build command on notebook and then can be copied and replace the file on phone.

                          If I want to replace and use the new nuntium binary on the phone, first the currently running process has to be stopped using initctl stop nuntium. Then replace binary and start process (initctl start nuntium).

                          The logs in ~/.cache/upstart/nuntium.log say, that the new (by me on notebook builded) binary is running. This means, I can compile, replace & run nuntium. The bug hunt can start.

                          jEzEk

                          lduboeufL 1 Reply Last reply Reply Quote 0
                          • lduboeufL Offline
                            lduboeuf @jezek
                            last edited by lduboeuf

                            @jezek nice :). I don't understand how do you build the deb though, which command ?.
                            [Edit]: ok re-read your post šŸ˜‰

                            So the defered download feature is not a bug, but never get implemented. Nuntium should be aware of the current situation e.g: if cellular-data is off or mms auto retrieval is off and notify upper layer with a special flag that there is a pending MMS before trying to get the MMS context from ofono. ( you can see where it happens in my PR ).
                            Nuntium should thus provide a callable method via dbus to fetch the MMS.

                            1 Reply Last reply Reply Quote 1
                            • KenedaK Offline
                              Keneda @lduboeuf
                              last edited by

                              @lduboeuf
                              If something as good as, or better, exists, and is more "up to date", why not...

                              2015-2023 : Meizu MX4 ā˜ ļøāš°ļøāœļø
                              2023-2024 : Nexus 5 ā˜ ļøāš°ļøāœļø
                              2024-***** : FPOS Fairphone 5 waiting UT for freedom šŸ˜‰
                              šŸ‡²šŸ‡«šŸ‡¬šŸ‡§

                              1 Reply Last reply Reply Quote 0
                              • lduboeufL Offline
                                lduboeuf
                                last edited by

                                @jezek can be interesting to have: https://github.com/ubuntu-phonedations/nuntium/commit/57e4ecda2c1363daa69eb56cf962ff2fd4589bff

                                jezekJ 1 Reply Last reply Reply Quote 0
                                • jezekJ Offline
                                  jezek @lduboeuf
                                  last edited by

                                  @lduboeuf said in The MMS lost story:

                                  @jezek can be interesting to have: https://github.com/ubuntu-phonedations/nuntium/commit/57e4ecda2c1363daa69eb56cf962ff2fd4589bff

                                  Yep, I know about that. Before any new changes I have to rewrite all imports from "ubuntu-phonedations" to "ubpors". Because of that I diffed the repo to see if everything matches and found the same code as you. Everything will be in explained in my next PR. Work in progress. šŸ˜‰

                                  jEzEk

                                  lduboeufL 1 Reply Last reply Reply Quote 2
                                  • lduboeufL Offline
                                    lduboeuf @jezek
                                    last edited by

                                    @jezek Awesome,

                                    Also i had confirmation that the code from phonedation is the last work from Canonical.

                                    jezekJ 1 Reply Last reply Reply Quote 0
                                    • jezekJ Offline
                                      jezek @lduboeuf
                                      last edited by

                                      @lduboeuf Just made a PR, the code is in there.

                                      jEzEk

                                      1 Reply Last reply Reply Quote 2
                                      • jezekJ Offline
                                        jezek
                                        last edited by

                                        It would be nice to test the PR mentioned above, so it can be merged and I can focus on furher development. I have tested it only by replacing the nuntium binary. The ubports-qa method should be tested too (what should be the right command for the PR?). Write the test results to the PR comment, or here. Thank you all.

                                        Note: I did a MMS quick test (if it's working) by sending an MMS to myself. The test was successful, but I did get about 10 notifications upon delivery. Can anybody confirm, please?

                                        jEzEk

                                        lduboeufL 1 Reply Last reply Reply Quote 0
                                        • lduboeufL Offline
                                          lduboeuf
                                          last edited by

                                          @jezek
                                          I will test tomorrow. The command is sudo ubports-qa install PR_nuntium_5 .

                                          Thanks for making it šŸ˜‰

                                          1 Reply Last reply Reply Quote 0
                                          • lduboeufL Offline
                                            lduboeuf @jezek
                                            last edited by

                                            @jezek so can't wait finally, see PR comment ;-). If you want your PR to be reviewed, did you set a reviewer ? But don't be stuck if not merged ( sometimes it takes few months ^^...), just add a PR as a draft that is rebased from your PR 5.

                                            I didn't found any issues, thanks.a lot.

                                            1 Reply Last reply Reply Quote 1
                                            • jezekJ Offline
                                              jezek
                                              last edited by

                                              @lduboeuf said in The MMS lost story:

                                              Currently nuntium even if Cellular-data is off try to fetch the mms and fail silently if any issue.
                                              We would need to store the incoming WAP push notification, and propagate the issue to upper layer so that it can be tried later by user action.

                                              I've studied the code a little bit, I now have a slight understanding of what nuntium does.

                                              How do you imagine the deferred download? How does it work on other system (Android, iOS, …)?

                                              My understanding is, that when nuntium gets MMS notification from ofono and the contend download fails (or deferred download is enabled), then nuntium stores the notification and sends info about the fail (or deliberate not downloading) with some identifier to the telepathy-ofono (like you said in quoted comment). It should also listen to telepathy-ofono, which could ask for downloading the content for some deferred MMS. Is this right (for starter)?

                                              Note: I've seen the TODOs in the code and your PR which sends the fail message to telepathy-ofono, so I have a rough idea what to add or change, I'm just want to make sure I'm on the right track, before start.

                                              jEzEk

                                              lduboeufL 1 Reply Last reply Reply Quote 1
                                              • First post
                                                Last post