This extension facilitates the ability to register different participant roles for an event in CiviCRM. At the moment CiviCRM will default the role used during online registration to the role chosen when setting up the event. So all the participants from online event registration would have same participant role. The work around for achieving multiple participant roles registered for an event would be to do an offline registration for a person and then select the respective role while doing so or on Drupal installations to use Webform.
This extension provides you with a list of participant roles and their event registrations URLs. You could simply copy and send the URL to the desired participants.
Consider an example here:
You have an event called - Spring Summit 2015
Event Type - Conference
Guest Role - Attendee
Guest Listing - Name and Email etc
and this event is for 2 days in London.
Now people registering for this event would only have participant role to be "Attendee" using the "Online Registration (Live)" link.
If you have this extension installed, on Event screen under "Info and Settings" tab, you should be able to see the following (refer the screenshot) at the bottom of the page. Here every url is mapped to its participant role.
So to register volunteers for the above event, you could use urls next to "Volunteer" and so on for other participant roles. It not only generates URLs for the default participant roles but it also does for any custom participant role that you might have. :)
CiviCRM Extension listing: https://civicrm.org/extensions/event-registration-based-participant-roles