I reply in english because this an english forum (i prefer in spanish but..), and I reply to you using the forum and no private way because we must contribute to knowledge of the comunity.
Shapping P2P is not effective at 100% (in general, not in Zeroshell), you can shape some P2P (emule,..) and only block other (ares). Furthermore, Zeroshell (or Linux kernel, I don’t know) has some strange behaviour, as you can see in my previous post.
I’ve it in a bridged Zeroshell box, but you can do it in a routed box.
1.- First you have to create the classes (QoS->Class manager): One for prioritary traffic (with High priority), one for P2P (Low priority). This would be enough for a minimal configuration.
2.- Now you must define the global bandwith of the interfaces (two, I suposse) in QoS->Interface manager.
3.- Now you must define the rules in QoS->Classifier. Theoretically, lower rule is prioritary to higher rule, but most likely you will have to reorder them to get more effectiveness.
You must create rules to get prio traffic matched. Example: one rule with Layer 7 filter and HTTP protocol and other rule with SSL protocol. You must specify the target class in the rules.
You must create rules to get P2P traffic matched. Example: one rule with ipp2p match (peer-to-peer), other with Layer 7 and bittorrent protocol, and so.
4.- Now you must assign the classes to the interfaces. The two classes to each interfaces, and most likely change the parameter (local parameter) of the class, if you have different values in upstream and downstream.
Other question is that traffic not matched is collected in the “DEFAULT” class.
I think this is enough.
And keep in mind that if you make changes in classifier you must reset QoS (I normally reboot, to get sure)