-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmini_sip.h
More file actions
93 lines (71 loc) · 2.11 KB
/
Copy pathmini_sip.h
File metadata and controls
93 lines (71 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#ifndef MINI_SIP_H
#define MINI_SIP_H
#include <list>
#include "sobject.h"
#include "splugin.h"
#include "ssingleton.h"
#include "subsystem_media.h"
class Gui;
class Sip;
class Console_Debugger;
class Mini_Sip;
class Generic_Minisip_Plugin_Instance : public SObject
{
public:
Generic_Minisip_Plugin_Instance(Mini_Sip* minisip);
protected:
Mini_Sip* minisip;
};
class Mini_Sip : public SObject
{
public:
Mini_Sip( SRef<Gui *> gui, int argc, char**argv );
virtual ~Mini_Sip();
std::string get_mem_object_type() const {return "Minisip";}
void set_configuration_location(std::string c)
{
conf_path = c;
}
int stop();
int join();
int exit();
int start_sip();
int run_gui();
void start_debugger();
void stop_debugger();
static void do_load_plugins(char **argv);
static std::string get_plugin_path() {return plugin_path;}
Subsystem_Media* get_subsystem_media();
SRef<Sip_Configuration *> get_config() {return phone_conf;}
SRef<Message_Router*> get_message_router();
private:
static bool plugins_loaded;
static std::string plugin_path;
static void load_plugins(const std::string &argv0);
static void register_builtin_plugins();
int init_parse_config();
std::string conf_path;
SRef<Subsystem_Media *> subsystem_media;
SRef<Gui *> gui;
SRef<Sip_Configuration *> phone_conf;
SRef<Sip *> sip;
SRef<Message_Router*> message_router;
SRef<Console_Debugger *> console_dbg;
std::list<SRef<Generic_Minisip_Plugin_Instance*> > generic_plugins;
};
class Generic_Minisip_Plugin: public SPlugin
{
public:
virtual SRef<Generic_Minisip_Plugin_Instance*> new_instance(Mini_Sip* minisip) = 0;
};
class Generic_Minisip_Plugin_Registry: public SPlugin_Registry, public SSingleton<Generic_Minisip_Plugin_Registry>
{
public:
std::list<SRef<Generic_Minisip_Plugin_Instance*> > create_plugins(Mini_Sip* m);
virtual std::string get_plugin_type(){ return "genericplugin"; }
protected:
Generic_Minisip_Plugin_Registry();
private:
friend class SSingleton<Generic_Minisip_Plugin_Registry>;
};
#endif // MINI_SIP_H