# SIPRegister Class Reference

`#include <sippdu.h>`

Inheritance diagram for SIPRegister:

[legend]
Collaboration diagram for SIPRegister:
[legend]

## Public Types

| e_FullyCompliant
| e_CannotRegisterMultipleContacts
| e_CannotRegisterPrivateContacts
| e_HasApplicationLayerGateway
enum | CompatibilityModes { e_FullyCompliant, e_CannotRegisterMultipleContacts, e_CannotRegisterPrivateContacts, e_HasApplicationLayerGateway }

## Public Member Functions

| SIPRegister (SIPEndPoint &endpoint, OpalTransport &transport, const PString &callId, unsigned cseq, const Params &params)
virtual SIPTransaction * | CreateDuplicate () const

## Data Structures

struct | Params
| Registrar parameters. More...

## Member Enumeration Documentation

enum SIPRegister::CompatibilityModes

Enumerator:

  e_FullyCompliant | Registrar is fully compliant, we will register all listeners of all types (e.g. sip, sips etc) in the Contact field.
  e_CannotRegisterMultipleContacts | Registrar refuses to register more than one contact field. Correct behaviour is to return a contact with the fields it can accept in the 200 OK
  e_CannotRegisterPrivateContacts | Registrar refuses to register any RFC contact field. Correct behaviour is to return a contact with the fields it can accept in the 200 OK
  e_HasApplicationLayerGateway | Router has Application Layer Gateway code that is doing address transations, so we do not try to do it ourselves as well or it goes horribly wrong.

## Constructor & Destructor Documentation

SIPRegister::SIPRegister | ( | SIPEndPoint & | endpoint,
|  | OpalTransport & | transport,
|  | const PString & | callId,
|  | unsigned | cseq,
|  | const Params & | params |
| ) |  |  |

## Member Function Documentation

virtual SIPTransaction* SIPRegister::CreateDuplicate | ( |  | ) | const`[virtual]`

Implements SIPTransaction.

The documentation for this class was generated from the following file:

- sippdu.h