pjsipua-win 0.1.3

Rust library PJSUA2
// src/pjsua2_wrapper.h - Enhanced header with full API
#ifndef PJSUA2_WRAPPER_H
#define PJSUA2_WRAPPER_H


#ifdef __cplusplus
extern "C" {
#endif

// Endpoint management
int pjsua2_create_endpoint();
int pjsua2_init_endpoint(int log_level);
int pjsua2_create_transport(int port);
int pjsua2_start();
void pjsua2_destroy();

// Account management
int pjsua2_create_account(
    const char* id_uri,
    const char* registrar_uri,
    const char* username,
    const char* password,
    void (*on_reg_state)(int is_registered),
    void (*on_incoming_call)(int call_id, const char* remote_uri)
);

int pjsua2_create_account_simple(
    const char* id_uri,
    const char* registrar_uri,
    const char* username,
    const char* password
);

// Call management
int pjsua2_make_call(int acc_id, const char* dst_uri);
int pjsua2_answer_call(int call_id, int code);
int pjsua2_hangup_call(int call_id);

// Audio device management
int pjsua2_get_audio_device_count();
int pjsua2_get_audio_device_info(int index, char* name, int name_size,
                                int* is_capture, int* is_playback);
int pjsua2_set_audio_devices(int capture_dev, int playback_dev);

// Callback setup
void pjsua2_set_callbacks(
    void (*on_reg_state)(int acc_id, int is_registered),
    void (*on_incoming_call)(int acc_id, int call_id, const char* remote_uri),
    void (*on_call_state)(int call_id, int state),
    void (*on_call_media_state)(int call_id, int state)
);

// Test functions
int pjsua2_test_basic();
int pjsua2_test_object_creation();
int pjsua2_test_account_config();
int pjsua2_test_create_account();
int pjsua2_test_endpoint_state();

#ifdef __cplusplus
}
#endif

#endif // PJSUA2_WRAPPER_H