Your approach to adding messageTypes by extending the Campaign schema (nms:operation) is correct. As to the default, you have done this correctly as well, but aren't seeing it when you create a new campaign because of the following.
When you create a Campaign, you are actually making a copy of a Campaign template. (Campaign templates are instances of nms:operation, distinguished from actual campaigns by the isModel="true" flag.) The default value for the drop-down list is set in the Campaign template. To see this, go to the Resources > Templates > Campaign templates folder, open a template as if for editing, and Ctrl-F4 to edit the XML. Search for messageType. Compare the definition of the opEmpty Campaign template to that of the opEmail Campaign template, which actually does what you wanted:
In fact if you create a new Campaign template from scratch instead of duplicating an existing one, you will see that the messageType does default to frank.
thanks for your answer.
The solution works for the templates "New campaign" and "Recurring campaign", but not for the template "Periodic campaign". If I change the messageType value from "127" to "0" (E-Mail) this error message occurs:
"You must specify a program."
What do I have to do?
There is also another question concerning this topic. When I change the messageType from "127" to "0", furthermore there is the value "(non specified)". This value is defined in a factory-configured object. How can I delete this item (in an extension schema)?
I will look at this issue when I can, but hopefully you are duplicating the templates before modifying them. If not, that is okay, but a best practice is not to modify the out of the box templates - they are the ones in bold. This is because if you upgrade your environment you will lose your changes and also because if you break them there is not a backup.