I found a reference to the same problem in another thread
here, so it seems like a Voxalot dial plan implementation issue. That thread seems to have ended with an explanation that is incorrect--the SPA is able to pass the "#" character through iff it is part of the SPA dialplan, even if the "#" is at the end of the dialed sequence. For example, if your SPA dialplan is ([x#*][x#*].) dialing #123# will send all five characters through and the "send" function associated with # is disabled.