import "oaidl.idl"; import "ocidl.idl"; typedef long Pj_Status; typedef BSTR Pj_URI; typedef BSTR Pj_String; typedef int Pj_Bool; [ uuid(9CE3052A-7A32-4229-B31C-5E02E0667A77), version(1.0), helpstring("PJSIP credential information"), ] typedef struct Pjsip_Cred_Info { Pj_String realm; Pj_String scheme; Pj_String username; int hashed; Pj_String data; } Pjsip_Cred_Info; [ uuid(3B12B04F-6E48-46a7-B9E0-6C4BF1594A96), version(1.0), helpstring("PJSUA Account configuration"), ] typedef struct Pjsua_Acc_Config { Pj_URI acc_uri; Pj_URI reg_uri; Pj_URI contact_uri; Pj_URI proxy_uri; int reg_timeout; SAFEARRAY(Pjsip_Cred_Info) cred_info; } Pjsua_Acc_Config; [ uuid(E4B6573D-CF5E-484d-863F-ADAD5947FBE4), version(1.0), helpstring("PJSUA configuration"), ] typedef struct Pjsua_Config { unsigned int udp_port; Pj_String sip_host; unsigned int sip_port; unsigned int rtp_port; unsigned int max_calls; unsigned int conf_ports; unsigned int thread_cnt; Pj_String stun_srv1; unsigned int stun_port1; Pj_String stun_srv2; unsigned int stun_port2; unsigned int snd_player_id; unsigned int snd_capture_id; unsigned int clock_rate; Pj_Bool null_audio; unsigned int quality; unsigned int complexity; SAFEARRAY(Pj_String) codec_arg; unsigned int auto_answer; unsigned int uas_refresh; Pj_String outbound_proxy; SAFEARRAY(Pjsua_Acc_Config) acc_config; unsigned int log_level; unsigned int app_log_level; unsigned long log_decor; Pj_String log_filename; SAFEARRAY(Pj_String) buddy_uri; } Pjsua_Config; typedef enum Pjsua_Call_State { PJSUA_CALL_STATE_NULL, PJSUA_CALL_STATE_CALLING, PJSUA_CALL_STATE_INCOMING, PJSUA_CALL_STATE_EARLY, PJSUA_CALL_STATE_CONNECTING, PJSUA_CALL_STATE_CONFIRMED, PJSUA_CALL_STATE_DISCONNECTED, } Pjsua_Call_State; [ uuid(5043AC9E-A417-4f03-927E-D7AE52DDD064), version(1.0), helpstring("PJSUA Call Information"), ] typedef struct Pjsua_Call_Info { unsigned int index; Pj_Bool active; Pj_Bool is_uac; Pj_String local_info; Pj_String remote_info; Pjsua_Call_State state; Pj_String state_text; unsigned int connect_duration; unsigned int total_duration; unsigned int cause; Pj_String cause_text; Pj_Bool has_media; unsigned int conf_slot; } Pjsua_Call_Info; typedef enum Pjsua_Buddy_State { PJSUA_BUDDY_STATE_UNKNOWN, PJSUA_BUDDY_STATE_ONLINE, PJSUA_BUDDY_STATE_OFFLINE, } Pjsua_Buddy_State; [ uuid(2729F0BC-8A5E-4f3f-BC29-C1740A86393A), version(1.0), helpstring("PJSUA Buddy Information"), ] typedef struct Pjsua_Buddy_Info { unsigned int index; Pj_Bool is_valid; Pj_String name; Pj_String display; Pj_String host; unsigned int port; Pj_URI uri; Pjsua_Buddy_State status; Pj_String status_text; Pj_Bool monitor; int acc_index; } Pjsua_Buddy_Info; [ uuid(8D345956-10B7-4450-8A06-A80D2F319EFD), version(1.0), helpstring("PJSUA Account Information"), ] typedef struct Pjsua_Acc_Info { unsigned int index; Pj_URI acc_id; Pj_Bool has_registration; int expires; unsigned int status_code; Pj_String status_text; Pj_Bool online_status; } Pjsua_Acc_Info;