The base media dispatch passes is_voice= to send_voice; line, mattermost and weixin had explicit signatures without it, so a non-image MEDIA attachment routed as audio raised TypeError and was dropped — the same class as the Matrix report (#102221, #116776). Adds a repo-wide signature invariant test.