~anteater/mms-stack-bugs#23: 
unable to send group message in vgmms

After building vgmms and running it, I am able to send normal texts to a single recipient, with this output:

inserting send 0000000000000000000000000000000000000003: MessageInfo { sender: Number { num: <private> }, chat: [Number { num: <private> }, Number { num: <private> }], time: 1598931738, contents: [Text("test normal message")], status: Sending }

However I am having trouble sending a group message. The error is:

inserting send 0000000000000000000000000000000000000004: MessageInfo { sender: Number { num: <private> }, chat: [Number { num: <private> }, Number { num: <private> }, Number { num: <private> }], time: 1598932073, contents: [Text("test")], status: Sending }
error sending message: "The name org.ofono.mms was not provided by any .service files"
Status
REPORTED
Submitter
~johanvandegriff
Assigned to
No-one
Submitted
4 years ago
Updated
3 years ago
Labels
user support vgmms

~johanvandegriff referenced this from #16 4 years ago

~anteater 4 years ago

This means that vgmms has not found the dbus interface of a running MMSd process. It should be enough to run /usr/libexec/mmsd as your user (not root)--is that what you've been doing?

The -n (don't fork to the background) and -d (print debug information) flags are also useful to pass to MMSd.

Note that bug #2 means we won't yet try to resend messages that failed, because we're not yet tracking that they did fail to send originally.

~amindfv closed duplicate ticket #30 4 years ago

~johanvandegriff 4 years ago

After running mmsd as the user instead of root: /usr/libexec/mmsd -n -d, I still cannot send group messages, but the error is different. vgmms output

inserting send 0000000000000000000000000000000000000005: MessageInfo { sender: Number { num: <private> }, chat: [Number { num: <private> }, Number { num: <private> }, Number { num: <private> }], time: 1600402888, contents: [Text("test group message")], status: Sending }
BadSenderOrSentTime

mmsd output (sensitive numbers changed to , might have unnecessarily removed extra):

...
mmsd[2985]: src/service.c:activate_bearer() service <private> setup 0 active 0
mmsd[2985]: plugins/ofono.c:register_agent_reply() path /quectelqmi_0
mmsd[2985]: src/store.c:generate_uuid_from_pdu() pdu <private> len 378
mmsd[2985]: src/store.c:mms_store_file() pathname /home/mobian/.mms/<private>/<private>
mmsd[2985]: src/service.c:mms_message_register() message registered /org/ofono/mms/<private>/<private>
mmsd[2985]: src/service.c:emit_message_added() message <private>
mmsd[2985]: src/service.c:append_message() type=128
mmsd[2985]: src/service.c:append_msg_recipients() rcpt=<private>
mmsd[2985]: src/service.c:append_msg_recipients() rcpt=<private>
mmsd[2985]: src/service.c:append_message() appending pdu path /home/mobian/.mms/<private>/<private>
mmsd[2985]: src/service.c:append_attachment_properties() content-id: SMIL
mmsd[2985]: src/service.c:append_attachment_properties() content-id: 0.txt
mmsd[2985]: src/service.c:activate_bearer() service <private> setup 0 active 0
mmsd[2985]: plugins/ofono.c:check_gprs_attached() GPRS attached 1
mmsd[2985]: src/service.c:mms_service_set_bearer_handler() service <private> handler <private>

~johanvandegriff referenced this from #16 4 years ago

~amindfv referenced this from #16 4 years ago

~anteater 4 years ago

I think the latest version of vgmms should give a different error for this situation (NoSender), but I'm still not sure how to best fix it--my current hope is that a patch to ofono will allow it to provide vgmms and mmsd with the user's phone number (which it seems to be failing to do in your situation) and make this work.

I haven't had time to write said patch, but hopefully soon.

~johanvandegriff 4 years ago*

EDIT: I hadn't removed the Cargo.lock file so I just did that and am rebuilding now.

I got an error when building the latest vgmms commit:

   Compiling gtk v0.9.1
   Compiling gtk v0.9.2 (https://github.com/nt8r/gtk?branch=0.9#b2e42554)
   Compiling vgtk v0.3.0 (https://github.com/nt8r/vgtk/#0251e792)
   Compiling vgmms v0.1.0 (/home/mobian/mms/vgmms)
error[E0659]: `gtk` is ambiguous (name vs any other name during import resolution)
   --> src/window.rs:345:22
    |
345 |                         } } else { use gtk::prelude::NotebookExtManual; gtk!{
    |                                        ^^^ ambiguous name
    |
    = note: `gtk` could refer to a crate passed with `--extern`
    = help: use `::gtk` to refer to this crate unambiguously
note: `gtk` could also refer to the crate imported here
   --> src/window.rs:2:22
    |
2   | use vgtk::lib::gtk::{self, *, Box as GtkBox};
    |                      ^^^^
    = help: use `self::gtk` to refer to this crate unambiguously
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: no method named `popup_at_pointer` found for struct `gtk::auto::menu::Menu` in the current scope
  --> src/chat_log.rs:60:12
   |
60 |             cb_menu.popup_at_pointer(Some(&ev));
   |                     ^^^^^^^^^^^^^^^^ method not found in `gtk::auto::menu::Menu`

error[E0599]: no method named `popup_at_rect` found for struct `gtk::auto::menu::Menu` in the current scope
  --> src/chat_log.rs:76:9
   |
76 |             menu.popup_at_rect(&w.get_window().unwrap(), &rect,
   |                  ^^^^^^^^^^^^^ method not found in `gtk::auto::menu::Menu`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0599, E0659.
For more information about an error, try `rustc --explain E0599`.
error: could not compile `vgmms`.

To learn more, run the command again with --verbose.

with --verbose:

       Fresh unicode-xid v0.2.1
       Fresh pkg-config v0.3.18
       Fresh unicode-segmentation v1.6.0
       Fresh version-compare v0.0.10
       Fresh strum v0.18.0
       Fresh version_check v0.9.2
       Fresh autocfg v1.0.0
       Fresh rustdoc-stripper v0.1.14
       Fresh cfg-if v0.1.10
       Fresh either v1.6.0
       Fresh lazy_static v1.4.0
       Fresh proc-macro-hack v0.5.18
       Fresh futures-core v0.3.5
       Fresh futures-sink v0.3.5
       Fresh once_cell v1.4.0
       Fresh pin-utils v0.1.0
       Fresh slab v0.4.2
       Fresh futures-io v0.3.5
       Fresh regex-syntax v0.6.18
       Fresh autocfg v0.1.7
       Fresh rand_core v0.4.2
       Fresh byte-tools v0.3.1
       Fresh siphasher v0.3.3
       Fresh fixedbitset v0.2.0
       Fresh gimli v0.22.0
       Fresh opaque-debug v0.2.3
       Fresh adler v0.2.3
       Fresh precomputed-hash v0.1.1
       Fresh strsim v0.9.3
       Fresh fake-simd v0.1.2
       Fresh bit-vec v0.6.2
       Fresh new_debug_unreachable v1.0.4
       Fresh lalrpop-util v0.19.0
       Fresh rustc-demangle v0.1.16
       Fresh diff v0.1.12
       Fresh object v0.20.0
       Fresh linked-hash-map v0.5.3
       Fresh smallvec v1.4.2
       Fresh quick-error v1.2.3
       Fresh static_assertions v1.1.0
       Fresh arrayvec v0.5.1
       Fresh scopeguard v1.1.0
       Fresh fnv v1.0.7
       Fresh oncemutex v0.1.1
       Fresh termcolor v1.1.0
       Fresh fallible-iterator v0.2.0
       Fresh fallible-streaming-iterator v0.1.9
       Fresh hex v0.4.2
       Fresh xdg-basedir v1.0.0
       Fresh heck v0.3.1
       Fresh gtk-rs-lgpl-docs v0.1.18
       Fresh itertools v0.9.0
       Fresh thread_local v1.0.1
       Fresh itertools v0.8.2
       Fresh futures-channel v0.3.5
       Fresh futures-task v0.3.5
       Fresh block-padding v0.1.5
       Fresh rand_core v0.3.1
       Fresh rand_jitter v0.1.4
       Fresh phf_shared v0.8.0
       Fresh addr2line v0.13.0
       Fresh miniz_oxide v0.4.0
       Fresh bit-set v0.5.2
       Fresh lru-cache v0.1.2
       Fresh humantime v1.3.0
       Fresh lock_api v0.3.4
       Fresh proc-macro2 v1.0.19
       Fresh libc v0.2.74
       Fresh memchr v2.3.3
       Fresh bitflags v1.2.1
       Fresh proc-macro-nested v0.1.6
       Fresh byteorder v1.3.4
       Fresh anyhow v1.0.32
       Fresh typenum v1.12.0
       Fresh log v0.4.11
       Fresh rand_xorshift v0.1.1
       Fresh rand_hc v0.1.0
       Fresh rand_isaac v0.1.1
       Fresh ryu v1.0.5
       Fresh quote v1.0.7
       Fresh aho-corasick v0.7.13
       Fresh atty v0.2.14
       Fresh dirs v1.0.5
       Fresh backtrace v0.3.50
       Fresh quick-xml v0.17.2
       Fresh memchr v1.0.2
       Fresh parking_lot_core v0.7.2
       Fresh time v0.1.43
       Fresh libdbus-sys v0.2.1
       Fresh rand_os v0.1.3
       Fresh memmap v0.7.0
       Fresh libsqlite3-sys v0.18.0
       Fresh hashbrown v0.8.2
       Fresh num-traits v0.2.12
       Fresh generic-array v0.12.3
       Fresh ena v0.14.0
       Fresh rand_chacha v0.1.1
       Fresh rand_pcg v0.1.2
       Fresh syn v1.0.38
       Fresh proc-macro-error-attr v1.0.4
       Fresh lexical-core v0.7.4
       Fresh regex v1.3.9
       Fresh term v0.5.2
       Fresh colored v1.9.3
       Fresh nom v3.2.1
       Fresh parking_lot v0.10.2
       Fresh dbus v0.8.4
       Fresh rusqlite v0.23.1
       Fresh indexmap v1.5.1
       Fresh block-buffer v0.7.3
       Fresh digest v0.8.1
       Fresh num-integer v0.1.43
       Fresh rand v0.6.5
       Fresh serde_derive v1.0.115
       Fresh thiserror-impl v1.0.20
       Fresh strum_macros v0.18.0
       Fresh pin-project-internal v0.4.23
       Fresh futures-macro v0.3.5
       Fresh proc-macro-error v1.0.4
       Fresh synstructure v0.12.4
       Fresh nom v5.1.2
       Fresh ascii-canvas v2.0.0
       Fresh env_logger v0.7.1
       Fresh regex-cache v0.2.0
       Fresh petgraph v0.5.1
       Fresh sha2 v0.8.2
       Fresh chrono v0.4.15
       Fresh serde v1.0.115
       Fresh thiserror v1.0.20
       Fresh pin-project v0.4.23
       Fresh failure_derive v0.1.8
       Fresh pretty_env_logger v0.4.0
       Fresh tree_magic v0.2.3
       Fresh toml v0.5.6
       Fresh string_cache v0.8.0
       Fresh docopt v1.1.0
       Fresh bincode v1.3.1
       Fresh failure v0.1.8
       Fresh system-deps v1.3.2
       Fresh proc-macro-crate v0.1.5
       Fresh lalrpop v0.19.0
       Fresh futures-util v0.3.5
       Fresh glib-macros v0.10.1
       Fresh futures-executor v0.3.5
       Fresh glib-sys v0.10.0
       Fresh phonenumber v0.2.4+8.11.3
       Fresh gobject-sys v0.10.0
       Fresh futures v0.3.5
       Fresh cairo-sys-rs v0.10.0
       Fresh vgtk-macros v0.3.0
       Fresh glib v0.10.1
       Fresh gio-sys v0.10.0
       Fresh pango-sys v0.10.0
       Fresh atk-sys v0.10.0
       Fresh gdk-pixbuf-sys v0.10.0
       Fresh cairo-rs v0.9.1
       Fresh gio v0.9.0
       Fresh pango v0.9.1
       Fresh atk v0.9.0
       Fresh gdk-sys v0.10.0
       Fresh gdk-pixbuf v0.9.0
       Fresh gtk-sys v0.10.0
       Fresh gdk v0.13.1
       Fresh gtk v0.9.1
       Fresh gtk v0.9.2 (https://github.com/nt8r/gtk?branch=0.9#b2e42554)
       Fresh vgtk v0.3.0 (https://github.com/nt8r/vgtk/#0251e792)
   Compiling vgmms v0.1.0 (/home/mobian/mms/vgmms)
     Running `rustc --crate-name vgmms --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -Cembed-bitcode=no -C metadata=fda4491833569bd3 -C extra-filename=-fda4491833569bd3 --out-dir /home/mobian/mms/vgmms/target/release/deps -L dependency=/home/mobian/mms/vgmms/target/release/deps --extern byteorder=/home/mobian/mms/vgmms/target/release/deps/libbyteorder-03d4fb0ea6a62f89.rlib --extern chrono=/home/mobian/mms/vgmms/target/release/deps/libchrono-9c3b8a4a11ddff07.rlib --extern dbus=/home/mobian/mms/vgmms/target/release/deps/libdbus-07e22de1ab32ae20.rlib --extern futures=/home/mobian/mms/vgmms/target/release/deps/libfutures-b4184d4099aa28a7.rlib --extern gdk_pixbuf=/home/mobian/mms/vgmms/target/release/deps/libgdk_pixbuf-f11eb9bee48946a7.rlib --extern gtk=/home/mobian/mms/vgmms/target/release/deps/libgtk-0a23afd21654d604.rlib --extern hex=/home/mobian/mms/vgmms/target/release/deps/libhex-ef16adf7159fcdbc.rlib --extern lazy_static=/home/mobian/mms/vgmms/target/release/deps/liblazy_static-2ec9de3588dc68a4.rlib --extern memmap=/home/mobian/mms/vgmms/target/release/deps/libmemmap-a7d11f92c9ed736e.rlib --extern pango=/home/mobian/mms/vgmms/target/release/deps/libpango-8ebbc3cb087693e0.rlib --extern phonenumber=/home/mobian/mms/vgmms/target/release/deps/libphonenumber-7e4a00182be17bae.rlib --extern pretty_env_logger=/home/mobian/mms/vgmms/target/release/deps/libpretty_env_logger-ad0b1ae8ef7697a1.rlib --extern rand=/home/mobian/mms/vgmms/target/release/deps/librand-289bb56920ba1789.rlib --extern rusqlite=/home/mobian/mms/vgmms/target/release/deps/librusqlite-0e51916e82f29f80.rlib --extern tree_magic=/home/mobian/mms/vgmms/target/release/deps/libtree_magic-0596ade4d4e159ed.rlib --extern vgtk=/home/mobian/mms/vgmms/target/release/deps/libvgtk-a7cfd170f9807d71.rlib --extern xdg_basedir=/home/mobian/mms/vgmms/target/release/deps/libxdg_basedir-b820cd0d1c3015eb.rlib -L native=/usr/lib/aarch64-linux-gnu`
error[E0659]: `gtk` is ambiguous (name vs any other name during import resolution)
   --> src/window.rs:345:22
    |
345 |                         } } else { use gtk::prelude::NotebookExtManual; gtk!{
    |                                        ^^^ ambiguous name
    |
    = note: `gtk` could refer to a crate passed with `--extern`
    = help: use `::gtk` to refer to this crate unambiguously
note: `gtk` could also refer to the crate imported here
   --> src/window.rs:2:22
    |
2   | use vgtk::lib::gtk::{self, *, Box as GtkBox};
    |                      ^^^^
    = help: use `self::gtk` to refer to this crate unambiguously
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: no method named `popup_at_pointer` found for struct `gtk::auto::menu::Menu` in the current scope
  --> src/chat_log.rs:60:12
   |
60 |             cb_menu.popup_at_pointer(Some(&ev));
   |                     ^^^^^^^^^^^^^^^^ method not found in `gtk::auto::menu::Menu`

error[E0599]: no method named `popup_at_rect` found for struct `gtk::auto::menu::Menu` in the current scope
  --> src/chat_log.rs:76:9
   |
76 |             menu.popup_at_rect(&w.get_window().unwrap(), &rect,
   |                  ^^^^^^^^^^^^^ method not found in `gtk::auto::menu::Menu`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0599, E0659.
For more information about an error, try `rustc --explain E0599`.
error: could not compile `vgmms`.

Caused by:
  process didn't exit successfully: `rustc --crate-name vgmms --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -Cembed-bitcode=no -C metadata=fda4491833569bd3 -C extra-filename=-fda4491833569bd3 --out-dir /home/mobian/mms/vgmms/target/release/deps -L dependency=/home/mobian/mms/vgmms/target/release/deps --extern byteorder=/home/mobian/mms/vgmms/target/release/deps/libbyteorder-03d4fb0ea6a62f89.rlib --extern chrono=/home/mobian/mms/vgmms/target/release/deps/libchrono-9c3b8a4a11ddff07.rlib --extern dbus=/home/mobian/mms/vgmms/target/release/deps/libdbus-07e22de1ab32ae20.rlib --extern futures=/home/mobian/mms/vgmms/target/release/deps/libfutures-b4184d4099aa28a7.rlib --extern gdk_pixbuf=/home/mobian/mms/vgmms/target/release/deps/libgdk_pixbuf-f11eb9bee48946a7.rlib --extern gtk=/home/mobian/mms/vgmms/target/release/deps/libgtk-0a23afd21654d604.rlib --extern hex=/home/mobian/mms/vgmms/target/release/deps/libhex-ef16adf7159fcdbc.rlib --extern lazy_static=/home/mobian/mms/vgmms/target/release/deps/liblazy_static-2ec9de3588dc68a4.rlib --extern memmap=/home/mobian/mms/vgmms/target/release/deps/libmemmap-a7d11f92c9ed736e.rlib --extern pango=/home/mobian/mms/vgmms/target/release/deps/libpango-8ebbc3cb087693e0.rlib --extern phonenumber=/home/mobian/mms/vgmms/target/release/deps/libphonenumber-7e4a00182be17bae.rlib --extern pretty_env_logger=/home/mobian/mms/vgmms/target/release/deps/libpretty_env_logger-ad0b1ae8ef7697a1.rlib --extern rand=/home/mobian/mms/vgmms/target/release/deps/librand-289bb56920ba1789.rlib --extern rusqlite=/home/mobian/mms/vgmms/target/release/deps/librusqlite-0e51916e82f29f80.rlib --extern tree_magic=/home/mobian/mms/vgmms/target/release/deps/libtree_magic-0596ade4d4e159ed.rlib --extern vgtk=/home/mobian/mms/vgmms/target/release/deps/libvgtk-a7cfd170f9807d71.rlib --extern xdg_basedir=/home/mobian/mms/vgmms/target/release/deps/libxdg_basedir-b820cd0d1c3015eb.rlib -L native=/usr/lib/aarch64-linux-gnu` (exit code: 1)

~anteater 4 years ago*

Does running cargo update in vgmms' directory help?

~johanvandegriff 4 years ago

I cloned the repo again and ran cargo update but now the build gets stuck on cairo-rs every time:

...
       Fresh gobject-sys v0.10.0
       Fresh vgtk-macros v0.3.0
       Fresh cairo-sys-rs v0.10.0
   Compiling cairo-rs v0.9.1
       Fresh gio-sys v0.10.1
       Fresh glib v0.10.2
     Running `/home/mobian/mms/vgmms/target/release/build/cairo-rs-e27e8589007eee06/build-script-build`
       Fresh pango-sys v0.10.0
       Fresh atk-sys v0.10.0
       Fresh gdk-pixbuf-sys v0.10.0
       Fresh gio v0.9.1
       Fresh pango v0.9.1
       Fresh atk v0.9.0
       Fresh gdk-sys v0.10.0
       Fresh gdk-pixbuf v0.9.0
       Fresh gtk-sys v0.10.0
    Building [====================================================>  ] 252/258: cairo-rs(build)

~anteater 4 years ago*

Looks like a dependency is broken, I've submitted a bug report and will update when things are fixed upstream. In the meantime, run the following and try building again:

cargo update -p rustdoc-stripper --precise 0.1.14

~johanvandegriff referenced this from #27 4 years ago

~johanvandegriff 4 years ago*

thanks, I was able to build using that and it solved #27. I'm still not able to send group messages or messages with attachments.

output for sending a group message

inserting send 000000000000000000000000000000000000000e: MessageInfo { sender: Number { num: <private> }, chat: [Number { num: <private> }, Number { num: <private> }, Number { num: <private> }], time: 1601518078, contents: [Text("test group message")], status: Sending }
MMS notification parse error: MissingSender

output for sending to 1 person with an attachment:

inserting send 000000000000000000000000000000000000000b: MessageInfo { sender: Number { num: <private> }, chat: [Number { num:  <private> }, Number { num:  <private> }], time: 1601516958, contents: [Text("test attaching file"), Attachment(1)], status: Sending }
MMS notification parse error: MissingSender

~eenermckeener 4 years ago*

I too get MissingSender for anything other than a single number no-attachment message.

Incoming SMS work fine, anything with an attachment shows up as a notification in mmsd but won't come into vgmms

~eenermckeener 4 years ago*

Update: if I submit an image via MMS, if I have nothing but the mobile data active, it actually gets to the point where it returns "Request is valid but the MMSC is unable to process it due to some temporary conditions".

I think this is probably related to the APN I get connected to via ofono. I can't see how to change APNs manually and scan-operators just times out if that were likely to give me a different APN to use.

I know there's some facility for this in ModemManager because on Arch it will populate the APN selection box with the available APNs somehow, which is something Mobian and any other Phosh implementation I've seen does not do. Now is there some facility to set that for myself in ofono?\

Incoming image MMS show up and mmsd attempts to process them, but fails on "failed to register message interface". Again, this might be the APN thing. If I connect via MM and check the SMS queue, it will give me a message #. If I use --create-file-with-data= it gives me an URL to retrieve the attachment and if I'm on mobile data only, I can wget the URL in that message to get the MMS. I don't know how to actually parse this as it's some header XML and then the image in one package.

~johanvandegriff 4 years ago

Mobile data started working on my pinephone (mobian), so I decided to give MMS another try but I am still getting the same error when sending a group text or attaching a file: MMS notification parse error: MissingSender

~anteater 3 years ago

I've pushed a commit recently that may resolve this issue. Please try it out and let me know if things improve!

If things don't work but you no longer see any errors with the new code, it's likely that the problem lies in mmsd configuration rather than there being anything more vgmms itself can do.

Register here or Log in to comment, or comment via email.