wiki:PJSUA_API_Design

Version 3 (modified by bennylp, 11 years ago) (diff)

--

(Re)Design of PJSUA API

Global Settings

Base settings

Global settings:

  1. Nameservers
  2. Max calls
  3. SIP worker thread count
  4. Outbound proxies
  5. Outbound proxy credentials
  6. STUN settings:
    1. Domain
    2. Host
  7. Put NAT type in outgoing SDP
  8. Default extension:
    1. 100rel
  9. User agent string
  10. Default SRTP settings

Logging Config

Logging config:

  1. Enable SIP message logging
  2. Input verbosity level
  3. Console output verbosity level
  4. Decoration
  5. Log file name
  6. Logging callback

Accounts Settings

Account settings:

  1. General:
    1. Account priority
  2. SIP settings:
    1. SIP AOR for this account
    2. Registration settings:
      1. Registrar URI
      2. Credentials (realm, username, password)
      3. Registration timeout
    3. Transport settings
      1. Enable STUN
      2. Keep-alive setting
      3. Pre-loaded route set
      4. Disable registration contact auto update
    4. Presence settings
      1. Enable PUBLISH
      2. Optional PIDF tuple ID
    5. SIP extensions:
      1. Enable 100rel
      2. authentication preference (IMS)
  3. Media settings:
    1. STUN setting:
      1. Enable STUN
    2. TURN setting:
      1. Enable TURN (when enabled and ICE is not used, TURN transport will override all transports)
      2. Server address/domain
      3. Credential (realm, username, password)
      4. Client transport type {UDP/TCP/TLS}
      5. TLS certificate setting
      6. Keep-alive interval for UDP
      7. Keep-alive interval for TCP/TLS
    3. Enable ICE
    4. Enable RTCP
    5. SRTP
      1. Enable SRTP
      2. SRTP secure signaling requirement
    6. Codec settings
      1. Codec priorities
      2. Quality settings

Callbacks

Callbacks:

  1. on_call_state
  2. on_incoming_call
  3. on_call_tsx_state
  4. on_call_media_state
  5. on_stream_created
  6. on_stream_destroyed
  7. on_dtmf_digit
  8. on_call_transfer_request
  9. on_call_transfer_status
  10. on_call_replace_request
  11. on_call_replaced
  12. on_reg_state
  13. on_incoming_subscribe
  14. on_buddy_state
  15. on_pager2
  16. on_pager_status2
  17. on_typing
  18. on_nat_detect