In short, there is no user-configurable way to control the JMSMessageID.
For what it's worth, the ability to deduce the producer from the JMSMessageID is a quirk of the OpenWire JMS client implementation. As described in the JMS specification, the client implementation (i.e. the JMS "provider") sets the JMSMessageID on the message when it is sent. The OpenWire JMS client shipped with ActiveMQ 5.x uses the producer ID (which can include the client ID) and a sequence number to generate this value. The core JMS client shipped with ActiveMQ Artemis uses this method to generate a UUID value. The Qpid JMS client (which uses AMQP 1.0 and is also supported by ActiveMQ Artemis) uses another method still.
There is nothing in the JMS specification that requires a correlation between the producer and the JMSMessageID, and any such correlation would only work for that particular client implementation anyway. It wouldn't work for all the other kinds of clients supported by the broker (e.g. MQTT, STOMP, AMQP, etc.).
If you want to identify the producer which sent the message then I recommend you simply set a property on the message with the desired identification. This would work across all JMS client implementations.