= (Re)Design of PJSUA API = == Global Settings == === Base settings === Global settings: 1. Nameservers 1. Max calls 1. SIP worker thread count 1. Outbound proxies 1. Outbound proxy credentials 1. STUN settings: a. Domain a. Host 1. Put NAT type in outgoing SDP 1. Default extension: a. 100rel 1. User agent string 1. Default SRTP settings === Logging Config === Logging config: 1. Enable SIP message logging 1. Input verbosity level 1. Console output verbosity level 1. Decoration 1. Log file name 1. Logging callback == Accounts Settings == Account settings: 1. General: a. Account priority 1. SIP settings: a. SIP AOR for this account a. Registration settings: i. Registrar URI i. Credentials (realm, username, password) i. Registration timeout a. Transport settings i. Enable STUN i. Keep-alive setting i. Pre-loaded route set i. Disable registration contact auto update a. Presence settings i. Enable PUBLISH i. Optional PIDF tuple ID a. SIP extensions: i. Enable 100rel i. authentication preference (IMS) 1. ''Media settings:'' a. STUN setting: i. Enable STUN a. TURN setting: i. Enable TURN (when enabled and ICE is not used, TURN transport will override all transports) i. Server address/domain i. Credential (realm, username, password) i. Client transport type {UDP/TCP/TLS} i. TLS certificate setting i. Keep-alive interval for UDP i. Keep-alive interval for TCP/TLS a. Enable ICE a. Enable RTCP a. SRTP i. Enable SRTP i. SRTP secure signaling requirement a. Codec settings i. Codec priorities i. Quality settings == Callbacks == Callbacks: 1. on_call_state 1. on_incoming_call 1. on_call_tsx_state 1. on_call_media_state 1. on_stream_created 1. on_stream_destroyed 1. on_dtmf_digit 1. on_call_transfer_request 1. on_call_transfer_status 1. on_call_replace_request 1. on_call_replaced 1. on_reg_state 1. ''on_incoming_subscribe'' 1. on_buddy_state 1. on_pager2 1. on_pager_status2 1. on_typing 1. on_nat_detect