Home --> Documentations --> PJSIP Reference
Very simple SIP User Agent with registration, call, and media, all in under 200 lines of code.
43 #define THIS_FILE "APP"
45 #define SIP_DOMAIN "example.com"
46 #define SIP_USER "alice"
47 #define SIP_PASSWD "secret"
61 PJ_LOG(3,(THIS_FILE, "Incoming call from %.*s!!",
77 PJ_LOG(3,(THIS_FILE, "Call %d state=%.*s", call_id,
97 static void error_exit( const char *title, pj_status_t status)
109 int main( int argc, char *argv[])
116 if (status != PJ_SUCCESS) error_exit( "Error in pjsua_create()", status);
121 if (status != PJ_SUCCESS) error_exit( "Invalid URL in argv", status);
138 if (status != PJ_SUCCESS) error_exit( "Error in pjsua_init()", status);
148 if (status != PJ_SUCCESS) error_exit( "Error creating transport", status);
153 if (status != PJ_SUCCESS) error_exit( "Error starting pjsua", status);
160 cfg. id = pj_str( "sip:" SIP_USER "@" SIP_DOMAIN);
170 if (status != PJ_SUCCESS) error_exit( "Error adding account", status);
177 if (status != PJ_SUCCESS) error_exit( "Error making call", status);
184 puts( "Press 'h' to hangup all calls, 'q' to quit");
185 if (fgets(option, sizeof(option), stdin) == NULL) {
186 puts( "EOF while reading stdin, will quit now..");
190 if (option[0] == 'q')
193 if (option[0] == 'h')
pj_status_t pjsua_acc_add(const pjsua_acc_config *acc_cfg, pj_bool_t is_default, pjsua_acc_id *p_acc_id)
void(* on_incoming_call)(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_rx_data *rdata) Definition: pjsua-lib/pjsua.h:918
pj_status_t pjsua_call_get_info(pjsua_call_id call_id, pjsua_call_info *info)
Definition: pjsua-lib/pjsua.h:2773
pjsip_cred_info cred_info[8] Definition: pjsua-lib/pjsua.h:3642
pjsua_call_media_status media_status Definition: pjsua-lib/pjsua.h:4789
pj_status_t pjsua_init(const pjsua_config *ua_cfg, const pjsua_logging_config *log_cfg, const pjsua_media_config *media_cfg)
@ PJSUA_CALL_MEDIA_ACTIVE Definition: pjsua-lib/pjsua.h:4638
pj_str_t pj_str(char *str)
pj_str_t reg_uri Definition: pjsua-lib/pjsua.h:3446
void(* on_call_media_state)(pjsua_call_id call_id) Definition: pjsua-lib/pjsua.h:946
pj_str_t id Definition: pjsua-lib/pjsua.h:3437
Definition: pjsua-lib/pjsua.h:3414
pj_str_t scheme Definition: sip_auth.h:114
Definition: pjsua-lib/pjsua.h:4740
int pjsua_acc_id Definition: pjsua-lib/pjsua.h:266
Definition: pjsua-lib/pjsua.h:413
pj_status_t pjsua_call_answer(pjsua_call_id call_id, unsigned code, const pj_str_t *reason, const pjsua_msg_data *msg_data)
void pjsua_logging_config_default(pjsua_logging_config *cfg)
#define PJ_UNUSED_ARG(arg)
pj_str_t remote_info Definition: pjsua-lib/pjsua.h:4758
void pjsua_acc_config_default(pjsua_acc_config *cfg)
pjsua_callback cb Definition: pjsua-lib/pjsua.h:2033
void pjsua_transport_config_default(pjsua_transport_config *cfg)
int data_type Definition: sip_auth.h:116
void(* on_call_state)(pjsua_call_id call_id, pjsip_event *e) Definition: pjsua-lib/pjsua.h:908
unsigned cred_count Definition: pjsua-lib/pjsua.h:3633
unsigned console_level Definition: pjsua-lib/pjsua.h:428
@ PJSIP_CRED_DATA_PLAIN_PASSWD Definition: sip_auth.h:53
void pjsua_perror(const char *sender, const char *title, pj_status_t status)
pj_status_t pjsua_create(void)
#define PJ_LOG(level, arg)
pj_status_t pjsua_transport_create(pjsip_transport_type_e type, const pjsua_transport_config *cfg, pjsua_transport_id *p_id)
pj_status_t pjsua_call_make_call(pjsua_acc_id acc_id, const pj_str_t *dst_uri, const pjsua_call_setting *opt, void *user_data, const pjsua_msg_data *msg_data, pjsua_call_id *p_call_id)
Definition: sip_transport.h:295
Definition: pjsua-lib/pjsua.h:1823
int pjsua_call_id Definition: pjsua-lib/pjsua.h:263
unsigned port Definition: pjsua-lib/pjsua.h:2781
pj_status_t pjsua_verify_url(const char *url)
void pjsua_config_default(pjsua_config *cfg)
pj_str_t state_text Definition: pjsua-lib/pjsua.h:4773
pj_str_t realm Definition: sip_auth.h:111
void pjsua_call_hangup_all(void)
@ PJSIP_TRANSPORT_UDP Definition: sip_types.h:68
pj_status_t pjsua_destroy(void)
pjsua_conf_port_id conf_slot Definition: pjsua-lib/pjsua.h:4799
Definition: sip_event.h:81
pj_status_t pjsua_start(void)
pj_str_t username Definition: sip_auth.h:115
pj_str_t data Definition: sip_auth.h:117
PJSIP Open Source, high performance, small footprint, and very very portable SIP stack
Copyright (C) 2006-2008 Teluu Inc.
|