previous | start | next

## Analyze Use Case: Leave a message

1. User dials extension. `Telephone` sends number to `Connection`
   (Add collaborator `Telephone` to `Connection`)
2. `Connection` asks `MailSystem` to find matching `Mailbox`
3. `Connection` asks `Mailbox` for greeting
   (Add responsibility "manage greeting" to `Mailbox`,
   add collaborator `Mailbox` to `Connection`)
4. `Connection` asks `Telephone` to play greeting
5. User speaks greeting. `Telephone` asks `Connection` to record it.
   (Add responsibility "record voice input" to `Connection`)
6. User hangs up. `Telephone` notifies `Connection.`
7. `Connection` constructs `Message
   ` (Add card for `Message` class,
   add collaborator `Message` to `Connection`)
8. `Connection` adds `Message` to `Mailbox`

previous | start | next