match_jingle_action should be curried: almost every use is lambda e: jp.match_jingle_action(e.query, 'session-initiate') or similar.
Extract NewChannels-checking boilerplate.
Rename make_channel_proxy: wrap_channel should be used for channels, and the former only for SessionHandlers and StreamHandlers.
Done the second one in a branch; will rearrange patches and put it up for review at some point.
I never did finish extracting the NewChannels-checking boilerplate, but I did add a curried and flipped version of match_jingle_action, namely action_predicate.