Compare commits
No commits in common. "dev1" and "master" have entirely different histories.
2454 changed files with 766 additions and 1331658 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "pjproject"]
|
||||
path = pjproject
|
||||
url = https://github.com/pjsip/pjproject
|
21
Makefile
21
Makefile
|
@ -1,26 +1,33 @@
|
|||
PJSIP_DIR=pjproject-2.11.1
|
||||
PJSIP_DIR=pjproject
|
||||
PKG_CONFIG_PATH=pjsip.install/lib/pkgconfig
|
||||
|
||||
all: d-modem slmodemd
|
||||
ifndef NO_PULSE
|
||||
DM_LDFLAGS += -l pulse -l pulse-simple
|
||||
DM_CFLAGS += -DHAS_PULSE
|
||||
endif
|
||||
|
||||
all: d-modem slmodemd $(if $(NO_PULSE),,d-modem.nopulse)
|
||||
|
||||
$(PKG_CONFIG_PATH)/libpjproject.pc:
|
||||
(cd $(PJSIP_DIR); [ -f ./config.status ] || ./configure --prefix=`pwd`/../pjsip.install --disable-video)
|
||||
(cd $(PJSIP_DIR); [ -f ./config.status ] || ./configure --prefix=`pwd`/../pjsip.install --disable-video --disable-sound --enable-ext-sound --disable-speex-aec --enable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-openh264 --disable-vpx --disable-android-mediacodec --disable-darwin-ssl --disable-ssl --disable-opencore-amr --disable-silk --disable-opus --disable-bcg729 --disable-libyuv --disable-libwebrtc)
|
||||
$(MAKE) -C $(PJSIP_DIR) && \
|
||||
$(MAKE) -C $(PJSIP_DIR) install
|
||||
|
||||
d-modem: d-modem.c $(PKG_CONFIG_PATH)/libpjproject.pc
|
||||
$(CC) -o $@ $< `PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` -lpulse -lpulse-simple
|
||||
d-modem d-modem.nopulse : d-modem.c $(PKG_CONFIG_PATH)/libpjproject.pc
|
||||
$(CC) $(if $(findstring nopulse,$@),,$(DM_CFLAGS) $(DM_LDFLAGS)) -o $@ $< \
|
||||
`PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` \
|
||||
-O2 -s
|
||||
|
||||
slmodemd:
|
||||
$(MAKE) -C slmodemd
|
||||
|
||||
clean:
|
||||
rm -f d-modem.o d-modem
|
||||
rm -f d-modem.o d-modem d-modem.nopulse
|
||||
$(MAKE) -C slmodemd clean
|
||||
|
||||
realclean: clean
|
||||
$(MAKE) -C $(PJSIP_DIR) realclean
|
||||
rm -rf pjsip.install/*
|
||||
|
||||
|
||||
|
||||
.PHONY: all clean realclean slmodemd
|
||||
|
|
75
README.jerry.md
Normal file
75
README.jerry.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
# D-Modem
|
||||
Software modem with **sound**
|
||||
For burble's retro voip modem https://burble.dn42/retro/modem/
|
||||
Now also for JerryXiao's own software voip modems!
|
||||
|
||||
Fortunately this old proprietary software modem still works :)
|
||||
|
||||
## Prerequisite
|
||||
- A desktop GNU/Linux distribution, livecd is also OK
|
||||
- See the original README
|
||||
- Modem without any sound isn't a real modem? No problem, pulseaudio is used to output modem sound in realtime. You must have pulseaudio dev package installed on your system to compile this software.
|
||||
|
||||
## Step-by-step instruction
|
||||
|
||||
Execute these commands as a normal user:
|
||||
|
||||
```
|
||||
make
|
||||
./slmodemd/slmodemd -e ./d-modem
|
||||
screen /tmp/ttySL0 115200
|
||||
```
|
||||
|
||||
Inside the serial console, use the following at commands:
|
||||
|
||||
```
|
||||
ATX3
|
||||
> OK
|
||||
AT+MS=22,1
|
||||
> OK
|
||||
ATD424026019@voip.burble.dn42
|
||||
> CONNECT 1200
|
||||
```
|
||||
|
||||
You can also connect to:
|
||||
| number | AT+MS | ATD | Modulation |
|
||||
| ------------ | ------------ | ------------ | ------------ |
|
||||
| (42403618)361800 | AT+MS=90,1 | ATD361800@pbx.jerry.dn42 | V.90 |
|
||||
| (42403618)361801 | AT+MS=34,1 | ATD361801@pbx.jerry.dn42 | V.34 |
|
||||
| (42403618)361802 | AT+MS=32,1 | ATD361802@pbx.jerry.dn42 | V.32 |
|
||||
| (42403618)361803 | AT+MS=22,1 | ATD361803@pbx.jerry.dn42 | V.22 |
|
||||
| (42403618)361804 | AT+MS=22,1 | ATD361804@pbx.jerry.dn42 | V.22 |
|
||||
| (42403618)361805 | AT+MS=23,1 | ATD361805@pbx.jerry.dn42 | V.23 |
|
||||
| (42403618)361806 | AT+MS=23,1 | ATD361806@pbx.jerry.dn42 | V.23 |
|
||||
|
||||
Now you should be connected. If you see a login prompt, go to https://burble.dn42/retro/modem/ for login username and password. Once logged in, close out of GUN Screen and execute pppd like this:
|
||||
|
||||
```
|
||||
sudo pppd $(readlink /tmp/ttySL0) 1200 user dn42 noauth nodefaultroute nodetach
|
||||
```
|
||||
|
||||
nodefaultroute is used here to keep your voip alive :)
|
||||
|
||||
## netns
|
||||
If you would like a full dialup dn42 experience, try using netns:
|
||||
|
||||
```
|
||||
sudo ip netns add modem
|
||||
sudo ip netns exec modem pppd $(readlink /tmp/ttySL0) 1200 noauth nodefaultroute nodetach
|
||||
```
|
||||
|
||||
Start a new terminal and
|
||||
```
|
||||
sudo ip netns exec modem $SHELL
|
||||
unshare -m
|
||||
echo 172.23.0.53 > /tmp/resolv.conf
|
||||
mount --bind /tmp/resolv.conf /etc/resolv.conf
|
||||
ping burble.dn42
|
||||
```
|
||||
|
||||
Have fun!
|
||||
|
||||
|
||||
## Server
|
||||
This code can also work as a server, no docs available though ;)
|
||||
Just type ATA in the modem console and try it out first.
|
287
d-modem.c
287
d-modem.c
|
@ -27,25 +27,36 @@
|
|||
#include <pjsua-lib/pjsua.h>
|
||||
#include <pjsua-lib/pjsua_internal.h>
|
||||
|
||||
#ifdef HAS_PULSE
|
||||
#include <pulse/simple.h>
|
||||
#endif
|
||||
|
||||
pa_simple *pa_s1;
|
||||
pa_simple *pa_s2;
|
||||
#define PCM_FILE "dmodem.%s.s16le.9600hz.pcm"
|
||||
#undef PCM_FILE
|
||||
//#define HAS_PULSE
|
||||
|
||||
#ifdef HAS_PULSE
|
||||
pa_simple *pa_s1 = NULL;
|
||||
pa_simple *pa_s2 = NULL;
|
||||
const pa_sample_spec pa_ss = {
|
||||
.format = PA_SAMPLE_S16LE,
|
||||
.rate = 9600,
|
||||
.channels = 1
|
||||
.format = PA_SAMPLE_S16LE,
|
||||
.rate = 9600,
|
||||
.channels = 1
|
||||
};
|
||||
int wave_recv;
|
||||
int wave_transmit;
|
||||
#endif
|
||||
#ifdef PCM_FILE
|
||||
int wave_recv = -1;
|
||||
int wave_transmit = -1;
|
||||
#endif
|
||||
|
||||
#define SIGNATURE PJMEDIA_SIG_CLASS_PORT_AUD('D','M')
|
||||
#define DMODEM_DIAL_MODE 0
|
||||
#define DMODEM_ANSWER_MODE 2
|
||||
#define DMODEM_RING_DETECT_MODE 3
|
||||
#define DMODEM_ANSWER_MODE 1
|
||||
|
||||
uint8_t mode = DMODEM_DIAL_MODE;
|
||||
uint8_t ringing = 0;
|
||||
uint8_t answered = 0;
|
||||
int ppid;
|
||||
pjsua_call_id incoming;
|
||||
|
||||
struct dmodem {
|
||||
|
@ -58,22 +69,85 @@ static struct dmodem port;
|
|||
static bool destroying = false;
|
||||
static pj_pool_t *pool;
|
||||
|
||||
void stop_pa();
|
||||
static void error_exit(const char *title, pj_status_t status) {
|
||||
pjsua_perror(__FILE__, title, status);
|
||||
if (!destroying) {
|
||||
destroying = true;
|
||||
pjsua_destroy();
|
||||
stop_pa();
|
||||
if (answered)
|
||||
kill(ppid, SIGINT);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void start_pa() {
|
||||
#ifdef PCM_FILE
|
||||
char _wavbuf[50];
|
||||
sprintf(_wavbuf, PCM_FILE, "recv");
|
||||
wave_recv = open(_wavbuf, O_WRONLY | O_CREAT, 00644);
|
||||
sprintf(_wavbuf, PCM_FILE, "transmit");
|
||||
wave_recv = open(_wavbuf, O_WRONLY | O_CREAT, 00644);
|
||||
if (wave_recv <= 0 || wave_transmit <= 0)
|
||||
error_exit("open wave files", 1);
|
||||
#endif
|
||||
#ifdef HAS_PULSE
|
||||
pa_s1 = pa_simple_new(NULL, // Use the default server.
|
||||
"dmodem", // Our application's name.
|
||||
PA_STREAM_PLAYBACK,
|
||||
NULL, // Use the default device.
|
||||
"recv", // Description of our stream.
|
||||
&pa_ss, // Our sample format.
|
||||
NULL, // Use default channel map
|
||||
NULL, // Use default buffering attributes.
|
||||
NULL // Ignore error code.
|
||||
);
|
||||
pa_s2 = pa_simple_new(NULL, // Use the default server.
|
||||
"dmodem", // Our application's name.
|
||||
PA_STREAM_PLAYBACK,
|
||||
NULL, // Use the default device.
|
||||
"transmit", // Description of our stream.
|
||||
&pa_ss, // Our sample format.
|
||||
NULL, // Use default channel map
|
||||
NULL, // Use default buffering attributes.
|
||||
NULL // Ignore error code.
|
||||
);
|
||||
if (!pa_s1 || !pa_s2)
|
||||
error_exit("pulseaudio", 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void stop_pa() {
|
||||
#ifdef HAS_PULSE
|
||||
if(pa_s1)
|
||||
pa_simple_free(pa_s1);
|
||||
if(pa_s2)
|
||||
pa_simple_free(pa_s2);
|
||||
pa_s1 = 0;
|
||||
pa_s1 = 0;
|
||||
#endif
|
||||
#ifdef PCM_FILE
|
||||
if (wave_recv >= 0)
|
||||
close(wave_recv);
|
||||
if (wave_transmit >= 0)
|
||||
close(wave_transmit);
|
||||
wave_recv = -1;
|
||||
wave_transmit = -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static pj_status_t dmodem_put_frame(pjmedia_port *this_port, pjmedia_frame *frame) {
|
||||
struct dmodem *sm = (struct dmodem *)this_port;
|
||||
int len;
|
||||
|
||||
if (frame->type == PJMEDIA_FRAME_TYPE_AUDIO) {
|
||||
pa_simple_write(pa_s1, frame->buf, frame->size, NULL);
|
||||
write(wave_recv, frame->buf, frame->size);
|
||||
#ifdef HAS_PULSE
|
||||
pa_simple_write(pa_s1, frame->buf, frame->size, NULL);
|
||||
#endif
|
||||
#ifdef PCM_FILE
|
||||
write(wave_recv, frame->buf, frame->size);
|
||||
#endif
|
||||
if ((len=write(sm->sock, frame->buf, frame->size)) != frame->size) {
|
||||
error_exit("error writing frame",0);
|
||||
}
|
||||
|
@ -94,14 +168,20 @@ static pj_status_t dmodem_get_frame(pjmedia_port *this_port, pjmedia_frame *fram
|
|||
frame->timestamp.u64 = sm->timestamp.u64;
|
||||
frame->type = PJMEDIA_FRAME_TYPE_AUDIO;
|
||||
sm->timestamp.u64 += PJMEDIA_PIA_SPF(&this_port->info);
|
||||
pa_simple_write(pa_s2, frame->buf, frame->size, NULL);
|
||||
write(wave_transmit, frame->buf, frame->size);
|
||||
#ifdef HAS_PULSE
|
||||
pa_simple_write(pa_s2, frame->buf, frame->size, NULL);
|
||||
#endif
|
||||
#ifdef PCM_FILE
|
||||
write(wave_transmit, frame->buf, frame->size);
|
||||
#endif
|
||||
|
||||
return PJ_SUCCESS;
|
||||
}
|
||||
|
||||
static pj_status_t dmodem_on_destroy(pjmedia_port *this_port) {
|
||||
printf("destroy\n");
|
||||
if (answered)
|
||||
kill(ppid, SIGINT);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@ -117,15 +197,15 @@ static void on_call_state(pjsua_call_id call_id, pjsip_event *e) {
|
|||
ci.state_text.ptr));
|
||||
|
||||
if (ci.state == PJSIP_INV_STATE_DISCONNECTED) {
|
||||
if(mode != DMODEM_RING_DETECT_MODE) {
|
||||
close(port.sock);
|
||||
if (!destroying) {
|
||||
destroying = true;
|
||||
pjsua_destroy();
|
||||
exit(0);
|
||||
}
|
||||
close(port.sock);
|
||||
if (!destroying) {
|
||||
destroying = true;
|
||||
pjsua_destroy();
|
||||
stop_pa();
|
||||
if (answered)
|
||||
kill(ppid, SIGINT);
|
||||
exit(0);
|
||||
}
|
||||
ringing = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,7 +215,12 @@ static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_r
|
|||
char* tmp = malloc(pj_strlen(&ci.remote_contact)+1);
|
||||
strcpy(tmp, ci.remote_contact.ptr);
|
||||
tmp[pj_strlen(&ci.remote_contact)] = '\0';
|
||||
printf("Incoming call from: %s\n", tmp);
|
||||
if (answered) {
|
||||
PJ_LOG(2,(__FILE__, "Incoming call rejected from: %s", tmp));
|
||||
pjsua_call_hangup(call_id, 0u, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
PJ_LOG(2,(__FILE__, "Incoming call from: %s", tmp));
|
||||
free(tmp);
|
||||
incoming = call_id;
|
||||
ringing = 1;
|
||||
|
@ -162,68 +247,39 @@ static void on_call_media_state(pjsua_call_id call_id) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void start_pa() {
|
||||
wave_recv = open("/tmp/dmodem.recv.s16le.9600hz.pcm", O_WRONLY | O_CREAT, 00644);
|
||||
wave_transmit = open("/tmp/dmodem.transmit.s16le.9600hz.pcm", O_WRONLY | O_CREAT, 00644);
|
||||
if (wave_recv <= 0 || wave_transmit <= 0)
|
||||
error_exit("open wave files", 1);
|
||||
pa_s1 = pa_simple_new(NULL, // Use the default server.
|
||||
"dmodem", // Our application's name.
|
||||
PA_STREAM_PLAYBACK,
|
||||
NULL, // Use the default device.
|
||||
"recv", // Description of our stream.
|
||||
&pa_ss, // Our sample format.
|
||||
NULL, // Use default channel map
|
||||
NULL, // Use default buffering attributes.
|
||||
NULL // Ignore error code.
|
||||
);
|
||||
pa_s2 = pa_simple_new(NULL, // Use the default server.
|
||||
"dmodem", // Our application's name.
|
||||
PA_STREAM_PLAYBACK,
|
||||
NULL, // Use the default device.
|
||||
"transmit", // Description of our stream.
|
||||
&pa_ss, // Our sample format.
|
||||
NULL, // Use default channel map
|
||||
NULL, // Use default buffering attributes.
|
||||
NULL // Ignore error code.
|
||||
);
|
||||
if (!pa_s1 || !pa_s2)
|
||||
error_exit("pulseaudio", 1);
|
||||
}
|
||||
void stop_pa() {
|
||||
pa_simple_free(pa_s1);
|
||||
pa_simple_free(pa_s2);
|
||||
close(wave_recv);
|
||||
close(wave_transmit);
|
||||
}
|
||||
int main(int argc, char *argv[]) {
|
||||
pjsua_acc_id acc_id;
|
||||
pj_status_t status;
|
||||
if (argc != 3) {
|
||||
if (argc != 5) {
|
||||
return -1;
|
||||
}
|
||||
ringing = 0;
|
||||
if(!strncmp(argv[1], "++", 2)) {
|
||||
ppid = atoi(argv[3]);
|
||||
char* _modemid_tmp = argv[4];
|
||||
for (size_t i = strlen(_modemid_tmp) - 1 ; ; i--) {
|
||||
if (i < 0 || _modemid_tmp[i] < '0' || _modemid_tmp[i] > '9') {
|
||||
_modemid_tmp += i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int sip_port = atoi(_modemid_tmp);
|
||||
sip_port = sip_port >= 0 ? sip_port : 0;
|
||||
sip_port += 5060;
|
||||
sip_port = sip_port <= 65535 ? sip_port : 65535;
|
||||
if(!strncmp(argv[1], "rr", 2)) {
|
||||
mode = DMODEM_ANSWER_MODE;
|
||||
} else if(!strncmp(argv[1], "rr", 2)) {
|
||||
mode = DMODEM_RING_DETECT_MODE;
|
||||
}
|
||||
signal(SIGPIPE,SIG_IGN);
|
||||
char *dialstr = argv[1];
|
||||
|
||||
int has_sip_user = 1;
|
||||
char *sip_user = getenv("SIP_LOGIN");
|
||||
if (!sip_user) {
|
||||
has_sip_user = 0;
|
||||
printf("[!] SIP_LOGIN is empty, no registration will be attempted\n");
|
||||
char sip_user_buf[40];
|
||||
strcpy(sip_user_buf, "placeholder:placeholder@placeholder");
|
||||
sip_user = sip_user_buf;
|
||||
}
|
||||
if (!sip_user) {
|
||||
return -1;
|
||||
int has_sip_user = 1;
|
||||
const char *_sip_user = getenv("SIP_LOGIN");
|
||||
char *sip_user = NULL;
|
||||
if (!_sip_user) {
|
||||
has_sip_user = 0;
|
||||
_sip_user = "placeholder:placeholder@placeholder";
|
||||
}
|
||||
sip_user = malloc(strlen(_sip_user) + 1);
|
||||
strcpy(sip_user, _sip_user);
|
||||
char *sip_domain = strchr(sip_user,'@');
|
||||
if (!sip_domain) {
|
||||
return -1;
|
||||
|
@ -237,6 +293,8 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
status = pjsua_create();
|
||||
if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", status);
|
||||
if (!has_sip_user)
|
||||
PJ_LOG(2,(__FILE__, "SIP_LOGIN is empty, no registration will be attempted"));
|
||||
|
||||
/* Init pjsua */
|
||||
{
|
||||
|
@ -248,22 +306,23 @@ int main(int argc, char *argv[]) {
|
|||
cfg.cb.on_call_media_state = &on_call_media_state;
|
||||
cfg.cb.on_call_state = &on_call_state;
|
||||
|
||||
if(mode == DMODEM_RING_DETECT_MODE) {
|
||||
if(mode == DMODEM_ANSWER_MODE) {
|
||||
cfg.cb.on_incoming_call = &on_incoming_call;
|
||||
}
|
||||
|
||||
pjsua_logging_config_default(&log_cfg);
|
||||
log_cfg.console_level = 4;
|
||||
// log_cfg.console_level = 4;
|
||||
log_cfg.console_level = 2;
|
||||
|
||||
pjsua_media_config_default(&med_cfg);
|
||||
med_cfg.no_vad = true;
|
||||
med_cfg.ec_tail_len = 0;
|
||||
med_cfg.jb_max = 2000;
|
||||
// med_cfg.jb_init = 200;
|
||||
/* // med_cfg.jb_init = 200 */
|
||||
med_cfg.jb_init = 100;
|
||||
/* med_cfg.audio_frame_ptime = 5; */
|
||||
med_cfg.jb_max = -1;
|
||||
med_cfg.jb_init = -1;
|
||||
med_cfg.audio_frame_ptime = 10;
|
||||
med_cfg.quality = 10;
|
||||
med_cfg.enable_ice = PJ_FALSE;
|
||||
med_cfg.enable_turn = PJ_FALSE;
|
||||
|
||||
status = pjsua_init(&cfg, &log_cfg, &med_cfg);
|
||||
if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status);
|
||||
|
@ -271,38 +330,38 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
pjsua_set_ec(0,0); // maybe?
|
||||
pjsua_set_null_snd_dev();
|
||||
|
||||
|
||||
/* g711 only */
|
||||
pjsua_codec_info codecs[32];
|
||||
unsigned count = sizeof(codecs)/sizeof(*codecs);
|
||||
pjsua_enum_codecs(codecs,&count);
|
||||
for (int i=0; i<count; i++) {
|
||||
int pri = 0;
|
||||
if (pj_strcmp2(&codecs[i].codec_id,"PCMU/8000/1") == 0) {
|
||||
pri = 0;
|
||||
} else if (pj_strcmp2(&codecs[i].codec_id,"PCMA/8000/1") == 0) {
|
||||
if (pj_strcmp2(&codecs[i].codec_id,"PCMA/8000/1") == 0) {
|
||||
pri = 1;
|
||||
} else if (pj_strcmp2(&codecs[i].codec_id,"PCMU/8000/1") == 0) {
|
||||
pri = 2;
|
||||
}
|
||||
pjsua_codec_set_priority(&codecs[i].codec_id, pri);
|
||||
// printf("codec: %s %d\n",pj_strbuf(&codecs[i].codec_id),pri);
|
||||
}
|
||||
|
||||
pjsua_transport_id transport_id;
|
||||
pjsua_transport_id transport_id;
|
||||
/* Add UDP transport. */
|
||||
{
|
||||
pjsua_transport_config cfg;
|
||||
|
||||
pjsua_transport_config_default(&cfg);
|
||||
if (mode)
|
||||
cfg.port = 5160;
|
||||
if (getenv("PJSIP_IPV6"))
|
||||
cfg.port = sip_port;
|
||||
if (getenv("PJSIP_IPV6"))
|
||||
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP6, &cfg, &transport_id);
|
||||
else
|
||||
else
|
||||
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, &transport_id);
|
||||
if (status != PJ_SUCCESS) error_exit("Error creating transport", status);
|
||||
}
|
||||
char buf[384];
|
||||
printf("Initializing pool\n");
|
||||
//printf("Initializing pool\n");
|
||||
pj_caching_pool cp;
|
||||
pj_caching_pool_init(&cp, NULL, 1024*1024);
|
||||
pool = pj_pool_create(&cp.factory, "pool1", 4000, 4000, NULL);
|
||||
|
@ -311,8 +370,6 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
memset(&port,0,sizeof(port));
|
||||
port.sock = atoi(argv[2]); // inherited from parent
|
||||
if(mode == DMODEM_RING_DETECT_MODE)
|
||||
port.sock = NULL;
|
||||
pjmedia_port_info_init(&port.base.info, &name, SIGNATURE, 9600, 1, 16, 192);
|
||||
port.base.put_frame = dmodem_put_frame;
|
||||
port.base.get_frame = dmodem_get_frame;
|
||||
|
@ -324,7 +381,7 @@ int main(int argc, char *argv[]) {
|
|||
status = pjsua_start();
|
||||
if (status != PJ_SUCCESS) error_exit("Error starting pjsua", status);
|
||||
|
||||
if (has_sip_user)
|
||||
if (has_sip_user)
|
||||
{
|
||||
pjsua_acc_config cfg;
|
||||
pjsua_acc_config_default(&cfg);
|
||||
|
@ -345,52 +402,38 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
else
|
||||
{
|
||||
printf("acc add local\n");
|
||||
status == pjsua_acc_add_local(transport_id, 1, &acc_id);
|
||||
status == pjsua_acc_add_local(transport_id, 1, &acc_id);
|
||||
if (status != PJ_SUCCESS) error_exit("Error adding local account", status);
|
||||
}
|
||||
pjsua_get_var()->tpdata[transport_id].has_bound_addr = PJ_TRUE;
|
||||
if (getenv("PJSIP_IPV6"))
|
||||
pjsua_get_var()->acc[acc_id].cfg.ipv6_media_use = PJSUA_IPV6_ENABLED;
|
||||
if (getenv("PJSIP_IPV6"))
|
||||
pjsua_get_var()->acc[acc_id].cfg.ipv6_media_use = PJSUA_IPV6_ENABLED;
|
||||
|
||||
start_pa();
|
||||
start_pa();
|
||||
if(mode == DMODEM_DIAL_MODE) {
|
||||
if (has_sip_user)
|
||||
snprintf(buf,sizeof(buf),"sip:%s@%s",dialstr,sip_domain);
|
||||
else
|
||||
snprintf(buf,sizeof(buf),"sip:%s",dialstr);
|
||||
printf("calling %s\n",buf);
|
||||
if (has_sip_user)
|
||||
snprintf(buf,sizeof(buf),"sip:%s@%s",dialstr,sip_domain);
|
||||
else
|
||||
snprintf(buf,sizeof(buf),"sip:%s",dialstr);
|
||||
PJ_LOG(2,(__FILE__, "calling %s\n",buf));
|
||||
pj_str_t uri = pj_str(buf);
|
||||
pjsua_call_id callid;
|
||||
status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, &callid);
|
||||
if (status != PJ_SUCCESS) error_exit("Error making call", status);
|
||||
}
|
||||
if(mode == DMODEM_ANSWER_MODE) {
|
||||
pjsua_call_id id;
|
||||
char* cid = strrchr(argv[1], '+');
|
||||
id = atoi(cid);
|
||||
status = pjsua_call_answer(id, 200, NULL, NULL);
|
||||
if (status != PJ_SUCCESS) error_exit("Error answering call", status);
|
||||
}
|
||||
struct timespec ts = {100, 0};
|
||||
if(mode == DMODEM_RING_DETECT_MODE)
|
||||
ts.tv_sec = 1;
|
||||
time_t now = time(NULL);
|
||||
|
||||
struct timespec ts = {1, 0};
|
||||
while(1) {
|
||||
if(mode == DMODEM_RING_DETECT_MODE) {
|
||||
if(mode == DMODEM_ANSWER_MODE) {
|
||||
if(ringing) {
|
||||
char cid[11];
|
||||
snprintf(cid, 10, "%d", incoming);
|
||||
write(atoi(argv[2]), cid, strlen(cid));
|
||||
// status = pjsua_call_answer(incoming, 200, NULL, NULL);
|
||||
// if (status != PJ_SUCCESS) error_exit("Error answering call", status);
|
||||
// ringing = 0;
|
||||
break;
|
||||
status = pjsua_call_answer(incoming, 200, NULL, NULL);
|
||||
if (status != PJ_SUCCESS) error_exit("Error answering call", status);
|
||||
ringing = 0;
|
||||
answered = 1;
|
||||
}
|
||||
}
|
||||
nanosleep(&ts,NULL);
|
||||
}
|
||||
|
||||
stop_pa();
|
||||
return 0;
|
||||
}
|
||||
|
|
419
mm.py
Normal file
419
mm.py
Normal file
|
@ -0,0 +1,419 @@
|
|||
import subprocess
|
||||
import threading
|
||||
import select
|
||||
import time
|
||||
import tty
|
||||
import pathlib
|
||||
import re
|
||||
import os
|
||||
import signal
|
||||
import ipaddress
|
||||
import io
|
||||
import pty
|
||||
import logging
|
||||
import pwd
|
||||
import ctypes
|
||||
import argparse
|
||||
from typing import Union, Dict, List, Tuple, Callable, Any
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG,format='%(threadName)-5s - %(levelname)s - %(message)s')
|
||||
logger = logging.getLogger()
|
||||
|
||||
PJSIP_V6 = False
|
||||
# exports PJSIP_IPV6=1 to d-modem
|
||||
# uses ipv6 sip transport to preserve address space
|
||||
# utilize ipv4 over v6 next hop so that no v4 is required in the container
|
||||
|
||||
PTY_LOC = pathlib.Path("/tmp")
|
||||
RUN_AS = "nobody"
|
||||
get_pty = lambda n: PTY_LOC / f"ttySL{n}"
|
||||
|
||||
MODEMD = "./slmodemd/slmodemd"
|
||||
D_MODEM = './d-modem.nopulse'
|
||||
|
||||
IP4RANGE = ipaddress.ip_network("10.0.0.0/27")
|
||||
IP6RANGE = ipaddress.ip_network("fd00::/64")
|
||||
|
||||
PRODUCTION = False
|
||||
|
||||
# Do we really need that many?
|
||||
# modem_configs: Dict[int, List[str]] = {
|
||||
# **{i: (["AT+MS=92,1" ], lambda: PPPProc) for i in range(00, 05)},
|
||||
# **{i: (["AT+MS=90,1" ], lambda: PPPProc) for i in range(05, 10)},
|
||||
# **{i: (["AT+MS=34,1" ], lambda: PPPProc) for i in range(10, 15)},
|
||||
# **{i: (["AT+MS=132,1"], lambda: PPPProc) for i in range(15, 20)},
|
||||
# **{i: (["AT+MS=32,1" ], lambda: PPPProc) for i in range(20, 25)}, # broken?
|
||||
# **{i: (["AT+MS=122,1"], lambda: PPPProc) for i in range(25, 30)},
|
||||
# **{i: (["AT+MS=22,1" ], lambda: PPPProc) for i in range(30, 35)},
|
||||
# **{i: (["AT+MS=212,1"], lambda: PPPProc) for i in range(35, 40)},
|
||||
# **{i: (["AT+MS=23,1" ], lambda: PPPProc) for i in range(40, 45)},
|
||||
# **{i: (["AT+MS=21,1" ], lambda: PPPProc) for i in range(45, 50)}, # broken?
|
||||
# **{i: (["AT+MS=103,1"], lambda: PPPProc) for i in range(50, 55)},
|
||||
# }
|
||||
|
||||
modem_configs: Dict[int, Tuple[List[str], Callable]] = {
|
||||
**{i: (["AT+MS=90,1"], lambda: PPPProc) for i in range(0, 1)},
|
||||
**{i: (["AT+MS=34,1"], lambda: PPPProc) for i in range(1, 2)},
|
||||
**{i: (["AT+MS=32,1"], lambda: PPPProc) for i in range(2, 3)},
|
||||
**{i: (["AT+MS=22,1"], lambda: PPPProc) for i in range(3, 5)},
|
||||
**{i: (["AT+MS=23,1"], lambda: PPPProc) for i in range(5, 7)},
|
||||
}
|
||||
|
||||
assert all(i >= 0 for i in modem_configs)
|
||||
|
||||
class BaseProc:
|
||||
def __init__(self) -> None:
|
||||
self.proc: subprocess.Popen = None
|
||||
def proc(self) -> subprocess.Popen:
|
||||
return self.proc
|
||||
def terminate(self, *args, **kwargs):
|
||||
return self.proc.terminate(*args, **kwargs)
|
||||
def wait(self, *args, **kwargs):
|
||||
return self.proc.wait(*args, **kwargs)
|
||||
def poll(self, *args, **kwargs):
|
||||
return self.proc.poll(*args, **kwargs)
|
||||
def send_signal(self, *args, **kwargs):
|
||||
return self.proc.send_signal(*args, **kwargs)
|
||||
|
||||
class ShellProc(BaseProc):
|
||||
''' danger! '''
|
||||
def __init__(self, ptyr: io.BufferedReader, ptyw: io.BufferedWriter, speed: int, no: int,
|
||||
pty_path: pathlib.Path, ip: Tuple[ipaddress.IPv4Address, ipaddress.IPv6Address]) -> None:
|
||||
assert not PRODUCTION
|
||||
self.proc = subprocess.Popen(
|
||||
['bash', '-c', 'stty sane;exec bash'],
|
||||
stdin=ptyr,
|
||||
stdout=ptyw,
|
||||
stderr=ptyw,
|
||||
preexec_fn=os.setsid,
|
||||
env=dict(os.environ, TERM='vt100')
|
||||
)
|
||||
|
||||
class PPPProc(BaseProc):
|
||||
def __init__(self, ptyr: io.BufferedReader, ptyw: io.BufferedWriter, speed: int, no: int,
|
||||
pty_path: pathlib.Path, ip: Tuple[ipaddress.IPv4Address, ipaddress.IPv6Address]) -> None:
|
||||
self.no = no
|
||||
self.ip = ip
|
||||
ptyw.write((
|
||||
f"Welcome to D-Modem\r\nExample pppd launch options:\r\n"
|
||||
f" pppd /dev/ttyACM0 {speed} defaultroute persist noproxyarp noauth modem nodetach\r\n"
|
||||
f"Your ipv6 address is {ip[1]}.\r\n"
|
||||
f"Please add Address={ip[1]}/{IP6RANGE.prefixlen} Gateway={IP6RANGE[1]}\r\n"
|
||||
"to your ppp network device.\r\n"
|
||||
"Enjoy!\r\n\r\n\r\n"
|
||||
).encode('utf-8'))
|
||||
ll_ident = lambda x: ipaddress.IPv6Address(int(x) & int(ipaddress.IPv6Address(2**(128-IP6RANGE.prefixlen)-1)))
|
||||
self.proc = PopenComm(
|
||||
[
|
||||
'pppd', str(pty_path.resolve()), str(speed), 'noproxyarp', 'passive', 'noauth',
|
||||
'unit', str(no), 'modem', 'nodefaultroute', 'nodetach', f"{IP4RANGE[0]}:{ip[0]}",
|
||||
'+ipv6', 'ipv6', f"{ll_ident(IP6RANGE[1])},{ll_ident(ip[1])}",
|
||||
'ipcp-max-configure', '100', 'ipcp-max-failure', '100', 'ipcp-restart', '15',
|
||||
'ipv6cp-max-configure', '100', 'ipv6cp-max-failure', '100', 'ipv6cp-restart', '15'
|
||||
]
|
||||
)
|
||||
def wait(self, *args, **kwargs):
|
||||
while (lines := self.proc.readline()) is not None:
|
||||
for line in lines:
|
||||
logger.info(f"pppd: {line}")
|
||||
if 'remote LL address' in line:
|
||||
try:
|
||||
subprocess.run(
|
||||
[
|
||||
'ip', '-6', 'a', 'replace', 'dev', f"ppp{self.no}",
|
||||
f"{IP6RANGE[1]}/128", 'peer', f"{self.ip[1]}/128"
|
||||
],
|
||||
stdin=subprocess.DEVNULL,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL
|
||||
)
|
||||
logger.info(f"added v6 route to ppp{self.no}")
|
||||
except Exception:
|
||||
logger.exception(f"adding v6 route to ppp{self.no}")
|
||||
super().wait(*args, **kwargs)
|
||||
|
||||
class ModemManagerError(Exception):
|
||||
pass
|
||||
class ReadLineException(ModemManagerError):
|
||||
pass
|
||||
class PPPDDead(ModemManagerError):
|
||||
pass
|
||||
class CarrierLost(ModemManagerError):
|
||||
pass
|
||||
class ModemManager:
|
||||
terminating = False
|
||||
''' lol not that modem_manager '''
|
||||
def __init__(self):
|
||||
self.modems = {no: Modem(no, config) for no, config in modem_configs.items()}
|
||||
self.ip_used4 = {IP4RANGE[0]}
|
||||
self.ip_used6 = {IP6RANGE[0], IP6RANGE[1]}
|
||||
|
||||
class PopenComm(subprocess.Popen):
|
||||
def __init__(self, *args, **kwargs) -> None:
|
||||
try:
|
||||
self._popen_comm_master, self._popen_comm_slave = pty.openpty()
|
||||
os.set_blocking(self._popen_comm_master, False)
|
||||
self._popen_comm_r = open(self._popen_comm_master, "rb", buffering=0)
|
||||
kwargs['stdin'] = kwargs['stdout'] = kwargs['stderr'] = self._popen_comm_master
|
||||
super().__init__(*args, **kwargs)
|
||||
except Exception:
|
||||
self._popen_comm_cleanup()
|
||||
raise
|
||||
def w(self):
|
||||
try:
|
||||
super().wait(timeout=None)
|
||||
except Exception:
|
||||
logger.exception("Popen wait")
|
||||
self._popen_comm_cleanup()
|
||||
self.wtr = threading.Thread(target=w, args=(self,))
|
||||
self.wtr.start()
|
||||
|
||||
def wait(self, timeout=None) -> int:
|
||||
if timeout is not None:
|
||||
return super().wait(timeout=timeout)
|
||||
self.wtr.join()
|
||||
if self.poll() is None:
|
||||
return super().wait(timeout=None)
|
||||
return self.returncode
|
||||
|
||||
def _popen_comm_cleanup(self) -> None:
|
||||
try:
|
||||
os.close(self._popen_comm_slave)
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
self._popen_comm_r.close()
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
os.close(self._popen_comm_master)
|
||||
except Exception:
|
||||
pass
|
||||
logger.info(f"{self} pty pair closed")
|
||||
|
||||
def readline(self) -> Union[List[str], None]:
|
||||
''' blocks '''
|
||||
try:
|
||||
select.select([self._popen_comm_master], list(), list())
|
||||
read = self._popen_comm_r.read().decode('utf-8', errors='replace')
|
||||
except (OSError, ValueError):
|
||||
return None
|
||||
except Exception:
|
||||
logger.exception("readline")
|
||||
return None
|
||||
if not read:
|
||||
return None
|
||||
got = read.split('\n')
|
||||
if not got[-1]:
|
||||
got.pop(-1)
|
||||
return got
|
||||
|
||||
class IP_Request:
|
||||
lock = {4: threading.Lock(), 6: threading.Lock()}
|
||||
def __init__(self, version: int) -> None:
|
||||
assert version in {4, 6}
|
||||
self.v = version
|
||||
self.addr = None
|
||||
self.used = modem_manger.ip_used4 if self.v == 4 else modem_manger.ip_used6
|
||||
def __enter__(self):
|
||||
with self.lock[self.v]:
|
||||
for address in (IP4RANGE if self.v == 4 else IP6RANGE):
|
||||
if address in self.used:
|
||||
continue
|
||||
else:
|
||||
self.addr = address
|
||||
self.used.add(address)
|
||||
logger.info(f"ipv{self.v} lease: {str(self.addr)}")
|
||||
return address
|
||||
raise RuntimeError(f"error: ipv{self.v} address exhausted")
|
||||
def __exit__(self, *_):
|
||||
if self.addr:
|
||||
with self.lock[self.v]:
|
||||
self.used.remove(self.addr)
|
||||
logger.info(f"ipv{self.v} return: {str(self.addr)}")
|
||||
|
||||
class Modem:
|
||||
def __init__(self, no: int, config: Tuple[List[str], Callable]):
|
||||
self.no = no
|
||||
self.readline_quit = False
|
||||
self.readlinebuf = []
|
||||
self.modem_proc: Union[subprocess.Popen, None] = None
|
||||
self.ppp_proc: Union[subprocess.Popen, None] = None
|
||||
self.modem_cmd, get_ppp_func = config
|
||||
self.ppp_func = get_ppp_func()
|
||||
self.modem_cmd = [*self.modem_cmd, "ATA"]
|
||||
self.pty_path = get_pty(self.no)
|
||||
if os.path.exists(self.pty_path):
|
||||
logger.warning(f"pty link exists {str(self.pty_path)}")
|
||||
self.pty_path.unlink()
|
||||
self.modem_ctl: threading.Thread = threading.Thread(target=self._start_modem_ctl, name=f"md{no:03d}")
|
||||
self.ppp_ctl: threading.Thread = threading.Thread(target=self._start_ppp_ctl, name=f"pp{no:03d}")
|
||||
self.modem_ctl.start()
|
||||
self.ppp_ctl.start()
|
||||
|
||||
def _util_readline(self, dev: io.BufferedReader, timeout: float) -> bytes:
|
||||
readlinebuf = self.readlinebuf
|
||||
readlinebuf.clear()
|
||||
time_remaining = timeout
|
||||
while True:
|
||||
read_ready, _, _ = select.select([dev], list(), list(), 0.1)
|
||||
if self.readline_quit:
|
||||
self.readline_quit = False
|
||||
raise ReadLineException("process exit")
|
||||
if not read_ready:
|
||||
time_remaining -= 0.1
|
||||
if time_remaining < 0:
|
||||
break
|
||||
continue
|
||||
readlinebuf.append(dev.read(1))
|
||||
if readlinebuf[-1] == b'\n':
|
||||
return b''.join(readlinebuf)
|
||||
return b''.join(readlinebuf)
|
||||
|
||||
def _start_modem_ctl(self) -> None:
|
||||
while not ModemManager.terminating:
|
||||
try:
|
||||
if os.geteuid() == 0:
|
||||
pw_record = pwd.getpwnam(RUN_AS)
|
||||
uid, gid = pw_record.pw_uid, pw_record.pw_gid
|
||||
def demote():
|
||||
PR_SET_NO_NEW_PRIVS = 38
|
||||
PR_CAP_AMBIENT = 47
|
||||
PR_CAP_AMBIENT_CLEAR_ALL = 4
|
||||
PR_GET_SECUREBITS = 27
|
||||
PR_SET_SECUREBITS = 28
|
||||
libc = ctypes.CDLL('libc.so.6')
|
||||
libc.prctl.restype = ctypes.c_int
|
||||
assert libc.prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == 0
|
||||
assert libc.prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0) == 0
|
||||
assert libc.prctl(PR_SET_SECUREBITS, 0x2f) == 0
|
||||
# SECBIT_KEEP_CAPS_LOCKED | SECBIT_NO_SETUID_FIXUP | SECBIT_NO_SETUID_FIXUP_LOCKED | SECBIT_NOROOT | SECBIT_NOROOT_LOCKED
|
||||
assert libc.prctl(PR_GET_SECUREBITS) == 0x2f
|
||||
os.setgroups([])
|
||||
os.setresgid(gid, gid, gid)
|
||||
os.setresuid(uid, uid, uid)
|
||||
os.chdir(os.getcwd())
|
||||
preexec_func = demote
|
||||
env = {
|
||||
'USER': pw_record.pw_name,
|
||||
'LOGNAME': pw_record.pw_name,
|
||||
'HOME': '/',
|
||||
'PATH': os.environ['PATH'],
|
||||
}
|
||||
else:
|
||||
preexec_func = lambda: None
|
||||
env = dict(os.environ)
|
||||
logger.warning("d-modem is running as current user")
|
||||
assert not PRODUCTION
|
||||
if PJSIP_V6:
|
||||
env['PJSIP_IPV6'] = '1'
|
||||
else:
|
||||
if 'PJSIP_IPV6' in env:
|
||||
env.pop('PJSIP_IPV6')
|
||||
self.modem_proc = PopenComm(
|
||||
[MODEMD, '-e', D_MODEM, str(self.pty_path)],
|
||||
preexec_fn=preexec_func,
|
||||
env = env
|
||||
)
|
||||
while (lines := self.modem_proc.readline()) is not None:
|
||||
for line in lines:
|
||||
logger.info(f"slmodemd: {line}")
|
||||
self.modem_proc.wait()
|
||||
except Exception:
|
||||
logger.exception("unknown error")
|
||||
try:
|
||||
self.readline_quit = True
|
||||
if self.ppp_proc:
|
||||
self.ppp_proc.terminate()
|
||||
self.ppp_proc.wait()
|
||||
self.ppp_proc = None
|
||||
except Exception as err:
|
||||
logger.exception("unknown error")
|
||||
self.ppp_ctl.join()
|
||||
|
||||
def _start_ppp_ctl(self) -> None:
|
||||
time.sleep(1)
|
||||
while not ModemManager.terminating:
|
||||
commands = self.modem_cmd.copy()
|
||||
try:
|
||||
with open(self.pty_path.resolve(), "rb", buffering=0) as ptyr, open(self.pty_path.resolve(), "wb", buffering=0) as ptyw:
|
||||
tty.setraw(ptyr)
|
||||
tty.setraw(ptyw)
|
||||
while True:
|
||||
while (got := self._util_readline(ptyr, 0.3).decode('utf-8', errors='replace')):
|
||||
logger.debug(f"from pty: {got=}")
|
||||
if got:
|
||||
if (match := re.match(r'CONNECT ([0-9]+)', got)) and not self.ppp_proc:
|
||||
speed = int(match.groups()[0])
|
||||
assert speed > 0
|
||||
logger.info(f"connection {speed=}, start subprocess")
|
||||
ptyw.write(f"Remote speed {speed}\r\n".encode('utf-8'))
|
||||
try:
|
||||
with IP_Request(4) as ip4, IP_Request(6) as ip6:
|
||||
self.ppp_proc = self.ppp_func(ptyr, ptyw, speed, self.no, self.pty_path, (ip4, ip6))
|
||||
self.ppp_proc.wait()
|
||||
except Exception:
|
||||
logger.exception("unknown subprocess error")
|
||||
self.modem_proc.send_signal(signal.SIGINT)
|
||||
self.modem_proc.wait()
|
||||
raise PPPDDead
|
||||
elif got == 'NO CARRIER\r\n':
|
||||
self._util_readline(ptyr, 2)
|
||||
raise CarrierLost
|
||||
if commands:
|
||||
cmd = commands.pop(0)
|
||||
ptyw.write(f"{cmd}\n\r".encode('ascii'))
|
||||
logger.info(f"command: {cmd}")
|
||||
ptyw.flush()
|
||||
time.sleep(0.1)
|
||||
except ModemManagerError as err:
|
||||
logger.info(f"pty detach: {repr(err)}")
|
||||
time.sleep(0.1)
|
||||
except Exception:
|
||||
logger.exception("unknown error")
|
||||
time.sleep(2)
|
||||
|
||||
if __name__ == "__main__":
|
||||
abspath=os.path.abspath(__file__)
|
||||
abspath=os.path.dirname(abspath)
|
||||
os.chdir(abspath)
|
||||
|
||||
parser = argparse.ArgumentParser(description='ModemManager.py')
|
||||
parser.add_argument('-4', '--ipv4', type=str, default=str(IP4RANGE), help='ipv4 subnet')
|
||||
parser.add_argument('-6', '--ipv6', type=str, default=str(IP6RANGE), help='ipv6 subnet')
|
||||
parser.add_argument('-m', '--modemd', type=str, default=str(MODEMD), help='modemd location')
|
||||
parser.add_argument('-d', '--dmodem', type=str, default=str(D_MODEM), help='d-modem location')
|
||||
parser.add_argument('-p', '--pty', type=str, default=str(PTY_LOC), help='pty link location')
|
||||
parser.add_argument('-u', '--user', type=str, default=str(RUN_AS), help='run as user')
|
||||
parser.add_argument('-s', '--production', action='store_true', help='enable strict checks')
|
||||
parser.add_argument('--pjsip6', action='store_true', help='pjsip force v6')
|
||||
args = parser.parse_args()
|
||||
|
||||
def g(x: str, y: Any) -> None:
|
||||
globals()[x] = y
|
||||
g('IP4RANGE', ipaddress.ip_network(args.ipv4))
|
||||
g('IP6RANGE', ipaddress.ip_network(args.ipv6))
|
||||
g('MODEMD', args.modemd)
|
||||
g('D_MODEM', args.dmodem)
|
||||
g('PTY_LOC', pathlib.Path(args.pty))
|
||||
g('RUN_AS', args.user)
|
||||
g('PRODUCTION', args.production)
|
||||
g('PJSIP_V6', args.pjsip6)
|
||||
if args.production:
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
modem_manger = ModemManager()
|
||||
|
||||
def sighandler(signum, _frame):
|
||||
if ModemManager.terminating:
|
||||
logger.error(f"received signal {signum} while terminating")
|
||||
else:
|
||||
ModemManager.terminating = True
|
||||
logger.warning(f"terminate on signal {signum}")
|
||||
for modem in modem_manger.modems.values():
|
||||
modem.modem_proc.terminate()
|
||||
for sig in (signal.SIGTERM, signal.SIGHUP, signal.SIGINT, signal.SIGABRT):
|
||||
signal.signal(sig, sighandler)
|
||||
|
||||
for modem in modem_manger.modems.values():
|
||||
modem.modem_ctl.join()
|
1
pjproject
Submodule
1
pjproject
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 43c745789d291496fe1c3ed8a2c0dd6305260b32
|
|
@ -1,42 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: 'type: bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. run pjsua app with parameter: `--video --registrar sip:some.sip.registrar ...`
|
||||
1. make two video calls to: `sip:abc` and `sip:xyz`1
|
||||
1. setup video conference: `vid conf cc ...`
|
||||
1. assertion occurs!
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Logs/Screenshots**
|
||||
If applicable, add screenshots PJSIP logs with verbosity level 5, packet capture (e.g: using Wireshark), audio/video recording, screenshot, etc.
|
||||
|
||||
**Desktop/Smartphone (please complete the following information):**
|
||||
|
||||
- OS, Distribution & Version: [e.g. MacOS Mojave, Ubuntu 16.04, iOS 13]
|
||||
- PJSIP
|
||||
- version: ...
|
||||
- applied patch(es): [e.g: patches from issue/PR xyz]
|
||||
- `configure` script params: ...
|
||||
- `config_site.h` contents: ...
|
||||
- related third party libraries & versions: [e.g: OpenSSL 1.1.1b]
|
||||
|
||||
**Smartphone (please also complete the following information):**
|
||||
|
||||
- Device: [e.g. iPhone 6]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
|
@ -1,4 +0,0 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: PJSIP tag on Stack Overflow
|
||||
url: https://stackoverflow.com/questions/tagged/pjsip
|
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: 'type: enhancement'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -1,31 +0,0 @@
|
|||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
## Description
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
## Motivation and Context
|
||||
<!--- Why is this change required? What problem does it solve? -->
|
||||
<!--- If it fixes an open issue, please link to the issue here. -->
|
||||
|
||||
## How Has This Been Tested?
|
||||
<!--- Please describe in detail how you tested your changes. -->
|
||||
<!--- Include details of your testing environment, and the tests you ran to -->
|
||||
<!--- see how your change affects other areas of the code, etc. -->
|
||||
|
||||
## Screenshots (if appropriate):
|
||||
|
||||
## Types of changes
|
||||
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||
- [ ] New feature (non-breaking change which adds functionality)
|
||||
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
||||
|
||||
## Checklist:
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||
- [ ] My code follows the code style of this project.
|
||||
- [ ] My change requires a change to the documentation.
|
||||
- [ ] I have updated the documentation accordingly.
|
||||
- [ ] I have read the **CONTRIBUTING** document.
|
||||
- [ ] I have added tests to cover my changes.
|
||||
- [ ] All new and existing tests passed.
|
703
pjproject-2.11.1/.github/workflows/ccpp.yml
vendored
703
pjproject-2.11.1/.github/workflows/ccpp.yml
vendored
|
@ -1,703 +0,0 @@
|
|||
name: C/C++ CI
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build-ubuntu-default:
|
||||
# checking pure lib source distribution with plain configure & make
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: configure
|
||||
run: ./configure
|
||||
- name: make
|
||||
run: make
|
||||
|
||||
build-ubuntu-default-full-bundle-1:
|
||||
# full bundle: enable all codecs + AEC + DTLS
|
||||
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y swig sip-tester libopencore-amrnb-dev
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
- name: set up Python 2.7 for pjsua test
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 2.7
|
||||
- name: unit tests
|
||||
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
|
||||
|
||||
build-ubuntu-default-full-bundle-2:
|
||||
# full bundle 2: running pjnath test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y libopencore-amrnb-dev
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: unit tests
|
||||
run: make pjnath-test
|
||||
|
||||
build-ubuntu-default-full-bundle-3:
|
||||
# full bundle 3: running pjsip test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y libopencore-amrnb-dev
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: unit tests
|
||||
run: make pjsip-test
|
||||
|
||||
build-ubuntu-no-tls:
|
||||
# no TLS
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y swig
|
||||
- name: configure
|
||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --disable-ssl
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
# build-ubuntu-openssl
|
||||
# TLS: with OpenSSL (same as build-ubuntu-default)
|
||||
|
||||
build-ubuntu-gnu-tls:
|
||||
# TLS: with GnuTLS
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y --fix-missing swig libgnutls28-dev
|
||||
- name: configure
|
||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-ubuntu-video-openh264-1:
|
||||
# video: video enabled with vpx and openh264
|
||||
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y swig nasm sip-tester libvpx-dev libopencore-amrnb-dev
|
||||
- name: get openh264
|
||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
||||
- name: build openh264
|
||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
- name: set up Python 2.7 for pjsua test
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 2.7
|
||||
- name: unit tests
|
||||
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
|
||||
|
||||
build-ubuntu-video-openh264-2:
|
||||
# video 2: running pjnath test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
|
||||
- name: get openh264
|
||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
||||
- name: build openh264
|
||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: unit tests
|
||||
run: make pjnath-test
|
||||
|
||||
build-ubuntu-video-openh264-3:
|
||||
# video: 3: running pjsip test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
|
||||
- name: get openh264
|
||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
||||
- name: build openh264
|
||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: unit tests
|
||||
run: make pjsip-test
|
||||
|
||||
build-ubuntu-video-ffmpeg:
|
||||
# video enabled with vpx and ffmpeg and x264
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y swig nasm libx264-dev libvpx-dev
|
||||
- name: get ffmpeg
|
||||
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
|
||||
- name: configure ffmpeg
|
||||
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
|
||||
- name: build ffmpeg
|
||||
run: cd FFmpeg && make -j10 && sudo make install
|
||||
- name: config site
|
||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-mac-default:
|
||||
# checking pure lib source distribution with plain configure & make
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: configure
|
||||
run: ./configure
|
||||
- name: make
|
||||
run: make
|
||||
|
||||
build-mac-default-full-bundle-1:
|
||||
# full bundle: enable all codecs + AEC + DTLS
|
||||
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install opencore-amr swig sipp
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-g -fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: set up Python 2.7 for pjsua test
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 2.7
|
||||
- name: unit tests
|
||||
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
|
||||
|
||||
build-mac-default-full-bundle-2:
|
||||
# full bundle 2: running pjnath test
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install opencore-amr
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: unit tests
|
||||
run: make pjnath-test
|
||||
|
||||
build-mac-default-full-bundle-3:
|
||||
# full bundle 3: running pjsip test
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install opencore-amr
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: unit tests
|
||||
run: make pjsip-test
|
||||
|
||||
# build-ubuntu-no-tls:
|
||||
# no TLS (same as build-mac-default)
|
||||
|
||||
build-mac-openssl:
|
||||
# TLS: with OpenSSL
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install swig
|
||||
- name: configure
|
||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-mac-gnu-tls:
|
||||
# TLS: with GnuTLS
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install swig
|
||||
- name: configure
|
||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/local/
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-mac-video-openh264-1:
|
||||
# video: video enabled with vpx and openh264
|
||||
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install openh264 libvpx opencore-amr swig sipp
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-g -fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: set up Python 2.7 for pjsua test
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 2.7
|
||||
- name: unit tests
|
||||
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
|
||||
|
||||
build-mac-video-openh264-2:
|
||||
# video 2: running pjnath test
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install openh264 libvpx opencore-amr
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: unit tests
|
||||
run: make pjnath-test
|
||||
|
||||
build-mac-video-openh264-3:
|
||||
# video 3: running pjsip test
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install openh264 libvpx opencore-amr
|
||||
- name: config site
|
||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: disable firewall
|
||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
||||
- name: unit tests
|
||||
run: make pjsip-test
|
||||
|
||||
build-mac-video-ffmpeg:
|
||||
# video enabled with vpx and ffmpeg and x264
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install x264 libvpx nasm swig
|
||||
- name: get ffmpeg
|
||||
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
|
||||
- name: configure ffmpeg
|
||||
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
|
||||
- name: build ffmpeg
|
||||
run: cd FFmpeg && make -j10 && sudo make install
|
||||
- name: config site
|
||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-mac-video-vid-toolbox:
|
||||
# video enabled with vpx and video toolbox
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install dependencies
|
||||
run: brew install libvpx swig
|
||||
- name: config site
|
||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" > pjlib/include/pj/config_site.h
|
||||
- name: configure
|
||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
||||
- name: make
|
||||
run: make
|
||||
- name: swig bindings
|
||||
run: cd pjsip-apps/src/swig && make
|
||||
|
||||
build-windows-default:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get swig
|
||||
run: Invoke-WebRequest -Uri "https://nchc.dl.sourceforge.net/project/swig/swigwin/swigwin-4.0.1/swigwin-4.0.1.zip" -OutFile ".\swigwin.zip"
|
||||
shell: powershell
|
||||
- name: expand swig
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\swigwin.zip -DestinationPath .\swigwin\; pwd
|
||||
cd swigwin\swigwin-4.0.1
|
||||
Add-Content ..\..\swig_path.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: config site
|
||||
run:
|
||||
type nul > pjlib/include/pj/config_site.h
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
run: |
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32
|
||||
shell: cmd
|
||||
- name: build swig
|
||||
run: |
|
||||
set /P SWIG_PATH=<swig_path.txt
|
||||
set PATH=%PATH%;%SWIG_PATH%
|
||||
dir pjlib/include/pj/config_site.h
|
||||
type pjlib/include/pj/config_site.h
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%JAVA_HOME%\include;%JAVA_HOME%\include\win32
|
||||
cd pjsip-apps/build
|
||||
msbuild swig_java_pjsua2.vcxproj /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
||||
|
||||
build-windows-with-openssl-unit-test-1:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get openssl
|
||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
||||
shell: powershell
|
||||
- name: expand openssl
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\;
|
||||
cd openssl_build\openssl-1.1\x86
|
||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check openssl folder
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
dir %OPENSSL_DIR%\include
|
||||
dir %OPENSSL_DIR%\lib
|
||||
shell: cmd
|
||||
- name: config site
|
||||
run:
|
||||
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
||||
shell: powershell
|
||||
- name: check VsDevCmd.bat
|
||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
working-directory: .
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
||||
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
||||
- name: unit tests
|
||||
run: |
|
||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
||||
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
||||
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
||||
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
||||
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
||||
shell: powershell
|
||||
|
||||
build-windows-with-openssl-unit-test-2:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get openssl
|
||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
||||
shell: powershell
|
||||
- name: expand openssl
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
||||
cd openssl_build\openssl-1.1\x86
|
||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check openssl folder
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
dir "%OPENSSL_DIR%\include"
|
||||
dir "%OPENSSL_DIR%\lib"
|
||||
shell: cmd
|
||||
- name: config site
|
||||
run:
|
||||
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
||||
shell: powershell
|
||||
- name: check VsDevCmd.bat
|
||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
working-directory: .
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
||||
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
||||
- name: unit tests
|
||||
run: |
|
||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
||||
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
||||
cd pjsip/bin; ./pjsip-test-i386-Win32-vc14-Release.exe
|
||||
shell: powershell
|
||||
|
||||
build-windows-gnu-tls:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get gnutls
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/gnutls/releases/download/gnutls_3_6_11/libgnutls_gnutls_3_6_11_msvc14.zip" -Outfile ".\libgnutls.zip"
|
||||
shell: powershell
|
||||
- name: expand gnutls
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libgnutls.zip -DestinationPath .\libgnutls_build\; pwd
|
||||
cd libgnutls_build
|
||||
Add-Content ..\libgnutls_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check gnutls folder
|
||||
run: |
|
||||
set /P LIBGNUTLS_DIR=<libgnutls_dir.txt
|
||||
dir "%LIBGNUTLS_DIR%\include"
|
||||
dir "%LIBGNUTLS_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: config site
|
||||
run: |
|
||||
echo "" > pjlib\include\pj\config_site.h
|
||||
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
||||
Add-Content config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_GNUTLS"
|
||||
shell: powershell
|
||||
- name: check VsDevCmd.bat
|
||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
working-directory: .
|
||||
run: |
|
||||
set /P LIBGNUTLS_DIR=<gnutls_dir.txt
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%LIBGNUTLS_DIR%\include
|
||||
set LIB=%LIB%;%LIBGNUTLS_DIR%\lib\x86
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
||||
|
||||
build-windows-with-video-libvpx-unit-test-1:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get openssl
|
||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
||||
shell: powershell
|
||||
- name: expand openssl
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
||||
cd openssl_build\openssl-1.1\x86
|
||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check openssl folder
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
dir "%OPENSSL_DIR%\include"
|
||||
dir "%OPENSSL_DIR%\lib"
|
||||
shell: cmd
|
||||
- name: get libvpx
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/libvpx/releases/download/v1.8.2/libvpx_v1.8.2_msvc14.zip" -Outfile "libvpx.zip"
|
||||
shell: powershell
|
||||
- name: expand libvpx
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libvpx.zip -DestinationPath .\libvpx_build\; pwd
|
||||
cd libvpx_build
|
||||
Add-Content ..\libvpx_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check libvpx folder
|
||||
run: |
|
||||
set /P LIBVPX_DIR=<libvpx_dir.txt
|
||||
dir "%LIBVPX_DIR%\include"
|
||||
dir "%LIBVPX_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: get libsdl
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
||||
shell: powershell
|
||||
- name: expand libsdl
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
||||
cd libsdl_build
|
||||
Add-Content ..\libsdl_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check libsdl folder
|
||||
run: |
|
||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
||||
dir "%LIBSDL_DIR%\include\SDL"
|
||||
dir "%LIBSDL_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: config site
|
||||
run: |
|
||||
cd pjlib/include/pj; cp config_site_test.h config_site.h
|
||||
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_LIBYUV 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_VPX_CODEC 1"
|
||||
shell: powershell
|
||||
- name: check VsDevCmd.bat
|
||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
working-directory: .
|
||||
run: |
|
||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
||||
set /P LIBVPX_DIR=<libvpx_dir.txt
|
||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%LIBVPX_DIR%\include;%LIBSDL_DIR%\include\SDL
|
||||
set LIB=%LIB%;%OPENSSL_DIR%\lib;%LIBVPX_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
||||
- name: unit tests
|
||||
run: |
|
||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
||||
$env:LIBVPX_DIR = Get-Content .\libvpx_dir.txt
|
||||
$env:LIBSDL_DIR = Get-Content .\libsdl_dir.txt
|
||||
$env:PATH+=";$env:OPENSSL_DIR\bin;$env:LIBVPX_DIR\bin\x86;$env:LIBSDL_DIR\bin\x86;"
|
||||
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
||||
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
||||
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
||||
shell: powershell
|
||||
|
||||
build-windows-video-ffmpeg:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: get ffmpeg
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/FFmpeg/releases/download/4.3.r96746/libffmpeg_4.3.r96746_msvc14_x86.zip" -Outfile "libffmpeg.zip"
|
||||
shell: powershell
|
||||
- name: expand ffmpeg
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libffmpeg.zip -DestinationPath .\libffmpeg_build\; pwd
|
||||
cd libffmpeg_build
|
||||
Add-Content ..\libffmpeg_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check ffmpeg folder
|
||||
run: |
|
||||
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
||||
dir "%LIBFFMPEG_DIR%\include"
|
||||
dir "%LIBFFMPEG_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: get libx264
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/x264/releases/download/0.159.r2991/libx264_0.159.r2991_msvc14.zip" -Outfile ".\libx264.zip"
|
||||
shell: powershell
|
||||
- name: expand libx264
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libx264.zip -DestinationPath .\libx264_build\; pwd
|
||||
cd libx264_build
|
||||
Add-Content ..\libx264_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check libx264 folder
|
||||
run: |
|
||||
set /P LIBX264_DIR=<libx264_dir.txt
|
||||
dir "%LIBX264_DIR%\include"
|
||||
dir "%LIBX264_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: get libsdl
|
||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
||||
shell: powershell
|
||||
- name: expand libsdl
|
||||
run: |
|
||||
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
||||
cd libsdl_build
|
||||
Add-Content ..\libsdl_dir.txt $pwd.Path
|
||||
shell: powershell
|
||||
- name: check libsdl folder
|
||||
run: |
|
||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
||||
dir "%LIBSDL_DIR%\include\SDL"
|
||||
dir "%LIBSDL_DIR%\lib\x86"
|
||||
shell: cmd
|
||||
- name: config site
|
||||
run: |
|
||||
echo "" > pjlib\include\pj\config_site.h
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG_VID_CODEC 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 1"
|
||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
||||
shell: powershell
|
||||
- name: check VsDevCmd.bat
|
||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
shell: cmd
|
||||
- name: MSBuild
|
||||
working-directory: .
|
||||
run: |
|
||||
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
||||
set /P LIBX264_DIR=<libx264_dir.txt
|
||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set INCLUDE=%INCLUDE%;%LIBFFMPEG_DIR%\include;%LIBX264_DIR%\include;%LIBSDL_DIR%\include\SDL
|
||||
set LIB=%LIB%;%LIBFFMPEG_DIR%\lib\x86;%LIBX264_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
||||
shell: cmd
|
|
@ -1,66 +0,0 @@
|
|||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [master]
|
||||
schedule:
|
||||
- cron: '0 22 * * 2'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Override automatic language detection by changing the below list
|
||||
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
|
||||
language: ['cpp', 'python']
|
||||
# Learn more...
|
||||
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
|
||||
# If this run was triggered by a pull request event, then checkout
|
||||
# the head of the pull request instead of the merge commit.
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
# - name: Autobuild
|
||||
# uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
- run: |
|
||||
./configure --disable-libyuv --disable-libwebrtc --disable-speex-codec --disable-speex-aec
|
||||
make
|
||||
mv tests/pjsua/inc_cfg.py tests/pjsua/inc_cfg.txt
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
69
pjproject-2.11.1/.gitignore
vendored
69
pjproject-2.11.1/.gitignore
vendored
|
@ -1,69 +0,0 @@
|
|||
pjlib/include/pj/config_site.h
|
||||
lib/
|
||||
bin/
|
||||
output/
|
||||
|
||||
# VS stuff
|
||||
*.ncb
|
||||
*.suo
|
||||
*.cache
|
||||
*.resw
|
||||
.vs/
|
||||
.vscode/
|
||||
**/build/**/*.vcproj.*.user
|
||||
**/build/**/*.vcxproj.*.user
|
||||
**/build/**/*.vcproj.user
|
||||
**/build/**/*.vcxproj.user
|
||||
**/Win32/Debug
|
||||
**/x64/Debug
|
||||
**/x86/Debug
|
||||
UpgradeLog*.htm
|
||||
# VS 2015 stuff
|
||||
*.pdb
|
||||
*.db
|
||||
*.opendb
|
||||
samples.log
|
||||
|
||||
# GNU stuff
|
||||
config.log
|
||||
config.status
|
||||
build.mak
|
||||
user.mak
|
||||
cc-auto.mak
|
||||
os-auto.mak
|
||||
m_auto.h
|
||||
os_auto.h
|
||||
config_auto.h
|
||||
sip_autoconf.h
|
||||
*.depend
|
||||
|
||||
# Apple stuff
|
||||
*.DS_Store
|
||||
autom4te.cache
|
||||
xcuserdata
|
||||
pjsip-apps/src/pjsua/ios*/lib*.a
|
||||
pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.xcworkspace/
|
||||
pjsip-apps/src/pjsua/ios/ipjsua.xcworkspace/xcshareddata
|
||||
pjsip-apps/src/pjsua/ios-swift/Libraries/
|
||||
|
||||
# SWIG Java/Android stuff
|
||||
pjsip-apps/src/swig/java/android/app/src/main/java/org/pjsip/pjsua2/*.java
|
||||
pjsip-apps/src/swig/java/android/app/src/main/java/org/pjsip/PjCamera*.java
|
||||
pjsip-apps/src/swig/java/android/app/src/main/jniLibs/
|
||||
|
||||
# SWIG CSharp/Xamarin stuff
|
||||
pjsip-apps/src/swig/csharp/pjsua2xamarin/
|
||||
|
||||
# SWIG Python stuff
|
||||
pjsip-apps/src/swig/python/build/
|
||||
pjsip-apps/src/swig/python/pjsua2.py
|
||||
pjsip-apps/src/swig/python/pjsua2_wrap.*
|
||||
|
||||
# unit tests files
|
||||
tests/pjsua/*.pyc
|
||||
tests/pjsua/scripts-*/*.pyc
|
||||
tests/pjsua/*.log
|
||||
tests/pjsua/wavs/tmp*.wav
|
||||
tests/pjsua/tools/cmp_wav
|
||||
tests/pjsua/tools/cmp_wav.dSYM
|
||||
tests/pjsua/logs
|
|
@ -1,339 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -1,48 +0,0 @@
|
|||
[Last update: 2007/02/18]
|
||||
|
||||
-= INTRO=-
|
||||
|
||||
This top level projects:
|
||||
|
||||
- pjlib: portability and basic framework library
|
||||
- pjlib-util: lexical scanner, XML, STUN, MD5, DNS, etc.
|
||||
- pjmedia: media framework and codecs
|
||||
- pjsip: SIP stacks (core, UA layer, SIMPLE, etc.)
|
||||
- pjsip-apps: SIP apps (pjsua, pjsip-perf)
|
||||
|
||||
|
||||
-= COMPILING =-
|
||||
|
||||
On Windows:
|
||||
- Visual Studio 6: open pjproject.dsw
|
||||
- Visual Studio 8/2005: open pjproject-vs8.sln
|
||||
- Embedded VisualC 4: open open pjsip-apps\build\wince-evc4\wince_demos.vcw
|
||||
- Build pjsua
|
||||
|
||||
With Makefile:
|
||||
- on top level dir (e.g. ~/pjproject)
|
||||
- ./configure && make dep && make clean && make
|
||||
|
||||
Binaries will be in pjsip-apps/bin.
|
||||
|
||||
|
||||
-= PYTHON MODULE =-
|
||||
|
||||
On Windows:
|
||||
- Visual Studio 6: open pjsip-apps\build\pjsip_apps.dsw
|
||||
- Build py_pjsua module
|
||||
|
||||
With GNU and Python:
|
||||
- cd pjsip-apps/src/py_pjsua
|
||||
- python setup.py install
|
||||
|
||||
One Python sample application is provided:
|
||||
pjsip-apps/src/py_pjsua/pjsua_app.py
|
||||
|
||||
|
||||
-= PORTING =-
|
||||
|
||||
- Just need to port pjlib.
|
||||
- PJLIB doc has detailed info how to do this.
|
||||
- Must pass pjlib-test!
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
include build.mak
|
||||
include build/host-$(HOST_NAME).mak
|
||||
-include user.mak
|
||||
include version.mak
|
||||
|
||||
LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build
|
||||
DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS)
|
||||
|
||||
ifdef MINSIZE
|
||||
MAKE_FLAGS := MINSIZE=1
|
||||
endif
|
||||
|
||||
all clean dep depend print:
|
||||
for dir in $(DIRS); do \
|
||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
distclean realclean:
|
||||
for dir in $(DIRS); do \
|
||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(HOST_RM) config.log
|
||||
$(HOST_RM) config.status
|
||||
|
||||
lib:
|
||||
for dir in $(LIB_DIRS); do \
|
||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir lib; then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
|
||||
|
||||
.PHONY: lib doc
|
||||
|
||||
doc:
|
||||
@if test \( ! "$(WWWDIR)" == "" \) -a \( ! -d $(WWWDIR)/pjlib/docs/html \) ; then \
|
||||
echo 'Directory "$(WWWDIR)" does not look like a valid pjsip web directory'; \
|
||||
exit 1; \
|
||||
fi
|
||||
for dir in $(DIRS); do \
|
||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
|
||||
pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
|
||||
pjnath/lib/libpjnath-$(TARGET_NAME).a \
|
||||
pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
|
||||
pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
|
||||
pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
|
||||
pjsip/lib/libpjsip-$(TARGET_NAME).a \
|
||||
pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
|
||||
pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
|
||||
pjsip/lib/libpjsua-$(TARGET_NAME).a
|
||||
BINS = pjsip-apps/bin/pjsua-$(TARGET_NAME)$(HOST_EXE)
|
||||
|
||||
size:
|
||||
@echo -n 'Date: '
|
||||
@date
|
||||
@echo
|
||||
@for lib in $(LIBS); do \
|
||||
echo "$$lib:"; \
|
||||
size -t $$lib | awk '{print $$1 "\t" $$2 "\t" $$3 "\t" $$6}'; \
|
||||
echo; \
|
||||
done
|
||||
@echo
|
||||
@for bin in $(BINS); do \
|
||||
echo "size $$bin:"; \
|
||||
size $$bin; \
|
||||
done
|
||||
|
||||
#dos2unix:
|
||||
# for f in `find . | egrep '(mak|h|c|S|s|Makefile)$$'`; do \
|
||||
# dos2unix "$$f" > dos2unix.tmp; \
|
||||
# cp dos2unix.tmp "$$f"; \
|
||||
# done
|
||||
# rm -f dos2unix.tmp
|
||||
|
||||
xhdrid:
|
||||
for f in `find . | egrep '\.(h|c|S|s|cpp|hpp)$$'`; do \
|
||||
echo Processing $$f...; \
|
||||
cat $$f | sed 's/.*\$$Author\$$/ */' > /tmp/id; \
|
||||
cp /tmp/id $$f; \
|
||||
done
|
||||
|
||||
selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test
|
||||
|
||||
pjlib-test: pjlib/bin/pjlib-test-$(TARGET_NAME)
|
||||
cd pjlib/build && ../bin/pjlib-test-$(TARGET_NAME)
|
||||
|
||||
pjlib-util-test: pjlib-util/bin/pjlib-util-test-$(TARGET_NAME)
|
||||
cd pjlib-util/build && ../bin/pjlib-util-test-$(TARGET_NAME)
|
||||
|
||||
pjnath-test: pjnath/bin/pjnath-test-$(TARGET_NAME)
|
||||
cd pjnath/build && ../bin/pjnath-test-$(TARGET_NAME)
|
||||
|
||||
pjmedia-test: pjmedia/bin/pjmedia-test-$(TARGET_NAME)
|
||||
cd pjmedia/build && ../bin/pjmedia-test-$(TARGET_NAME)
|
||||
|
||||
pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME)
|
||||
cd pjsip/build && ../bin/pjsip-test-$(TARGET_NAME)
|
||||
|
||||
pjsua-test: cmp_wav
|
||||
cd tests/pjsua && python runall.py
|
||||
|
||||
cmp_wav:
|
||||
cd tests/pjsua/tools && make
|
||||
|
||||
install:
|
||||
mkdir -p $(DESTDIR)$(libdir)/
|
||||
cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
|
||||
if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \
|
||||
cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \
|
||||
fi
|
||||
mkdir -p $(DESTDIR)$(includedir)/
|
||||
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
|
||||
cp -RLf $$d/include/* $(DESTDIR)$(includedir)/; \
|
||||
done
|
||||
mkdir -p $(DESTDIR)$(libdir)/pkgconfig
|
||||
sed -e "s!@PREFIX@!$(prefix)!" libpjproject.pc.in | \
|
||||
sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
|
||||
sed -e "s!@LIBDIR@!$(libdir)!" | \
|
||||
sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
|
||||
sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
|
||||
sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \
|
||||
sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
|
||||
|
||||
uninstall:
|
||||
$(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
|
||||
rmdir $(DESTDIR)$(libdir)/pkgconfig 2> /dev/null || true
|
||||
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
|
||||
for f in $$d/include/*; do \
|
||||
$(RM) -r "$(DESTDIR)$(includedir)/`basename $$f`"; \
|
||||
done; \
|
||||
done
|
||||
rmdir $(DESTDIR)$(includedir) 2> /dev/null || true
|
||||
$(RM) $(addprefix $(DESTDIR)$(libdir)/,$(notdir $(APP_LIBXX_FILES)))
|
||||
rmdir $(DESTDIR)$(libdir) 2> /dev/null || true
|
|
@ -1,87 +0,0 @@
|
|||
|
||||
|
||||
|
||||
Build Instructions for PJLIB/PJMEDIA/PJSIP RTEMS Port
|
||||
|
||||
|
||||
|
||||
The RTEMS port uses the POSIX abstraction layer at the moment, and has been
|
||||
tested with RTEMS 4.6 on i386 target.
|
||||
|
||||
|
||||
Building RTEMS
|
||||
---------------
|
||||
I use RTEMS 4.6 on a cygwin host with i386/pc386 as target, but I think it
|
||||
should work with different RTEMS versions/hosts/targets.
|
||||
|
||||
RTEMS was built with the following commands:
|
||||
|
||||
$ /opt/src/rtems-4.6.6/configure --enable-cxx --enable-posix --enable-networking --enable-rdbg --enable-tests --enable-rtemsbsp=pc386 --target=i386-rtems
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
|
||||
Supported Targets
|
||||
-----------------
|
||||
At the moment, pjlib supports i386 and mpc860 CPU target. For other targets,
|
||||
you would need to create/tweak the appropriate "m-xxx.mak" in "build" directory
|
||||
and the corresponding "m_xxx.h" header file in "pj/compat" directory.
|
||||
|
||||
Please refer to pjlib porting guide about how to port PJLIB to new CPU target.
|
||||
|
||||
|
||||
Building PJLIB/PJMEDIA/PJSIP
|
||||
----------------------------
|
||||
Use the following steps to build the libraries:
|
||||
|
||||
|
||||
1. Set RTEMS_LIBRARY_PATH environment variable to point to your BSP directory
|
||||
(which is <RTEMS INSTALLATION POINT>/<BOARD SUPPORT PACKAGE>).
|
||||
|
||||
For example (with sh):
|
||||
|
||||
$ export RTEMS_LIBRARY_PATH=/opt/rtems-4.6/i386-rtems/pc386
|
||||
|
||||
|
||||
2. Unfortunately pjproject's configure script is unable to create "build.mak"
|
||||
for cross compilation (but this may change in the future), so we need to
|
||||
create "build.mak" manually.
|
||||
|
||||
The file "README-configure" has some info about the variables in "build.mak".
|
||||
|
||||
For example, the "build.mak" for i386 target:
|
||||
|
||||
export MACHINE_NAME := i386
|
||||
export OS_NAME := rtems
|
||||
export HOST_NAME := mingw
|
||||
export CC_NAME := gcc
|
||||
export TARGET_NAME := i386-rtems
|
||||
export CROSS_COMPILE := i386-rtems-
|
||||
|
||||
|
||||
3. Put additional CFLAGS or LDFLAGS that are specific to your target in
|
||||
"user.mak".
|
||||
|
||||
For example, my "user.mak" looks like this:
|
||||
|
||||
export CFLAGS +=
|
||||
export LDFLAGS += -Wl,-Ttext,0x00100000 -Wl,--defsym -Wl,HeapSize=0x400000
|
||||
|
||||
|
||||
4. Build the libraries:
|
||||
|
||||
$ make dep && make distclean && make
|
||||
|
||||
|
||||
5. That should be it. The libraries should be in "lib" directory and
|
||||
applications in "bin" directory.
|
||||
|
||||
|
||||
|
||||
Acknowledgements
|
||||
----------------
|
||||
Many thanks for Phil Torre <ptorre at zetron dot com>, who did most of the
|
||||
initial porting and testing with pjlib etc. All credits go to him.
|
||||
|
||||
|
||||
|
|
@ -1,968 +0,0 @@
|
|||
Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 2 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
Getting Started: Building and Using PJSIP and PJMEDIA
|
||||
|
||||
[Last Update: $Date: 2007-02-02 20:42:44 +0000 (Fri, 02 Feb 2007) $]
|
||||
|
||||
Print Friendly Page
|
||||
_________________________________________________________________
|
||||
|
||||
This article describes how to download, customize, build, and use the open
|
||||
source PJSIP and PJMEDIA SIP and media stack. The online (and HTML) version
|
||||
of this file can be downloaded from http://www.pjsip.org/using.htm
|
||||
|
||||
|
||||
Quick Info
|
||||
_________________________________________________________________
|
||||
|
||||
Building with GNU tools (Linux, *BSD, MacOS X, mingw, etc.)
|
||||
Generally these should be all that are needed to build the libraries,
|
||||
applications, and samples:
|
||||
|
||||
$ ./configure
|
||||
$ make dep && make clean && make
|
||||
|
||||
Building Win32 Target with Microsoft Visual Studio
|
||||
Generally we can just do these steps:
|
||||
|
||||
1. Visual Studio 6: open pjproject.dsw workspace,
|
||||
2. Visual Studio 2005: open pjproject-vs8.sln solution,
|
||||
3. Create an empty pjlib/include/pj/config_site.h, and
|
||||
4. build the pjsua application.
|
||||
|
||||
Building for Windows Mobile
|
||||
Generally these are all that are needed:
|
||||
|
||||
1. Open pjsip-apps/build/wince-evc4/wince_demos.vcw EVC4 workspace,
|
||||
2. Create an empty pjlib/include/pj/config_site.h, and
|
||||
3. build the pjsua_wince application.
|
||||
|
||||
Invoking Older Build System (e.g. for RTEMS)
|
||||
Generally these should be all that are needed to build the libraries,
|
||||
applications, and samples:
|
||||
|
||||
$ ./configure-legacy
|
||||
$ make dep && make clean && make
|
||||
|
||||
Locating Output Binaries/Libraries
|
||||
Libraries will be put in lib directory, and binaries will be put in
|
||||
bin directory, under each projects.
|
||||
|
||||
Running the Applications
|
||||
After successful build, you can try running pjsua application on
|
||||
pjsip-apps/bin directory. PJSUA manual can be found in
|
||||
http://www.pjsip.org/pjsua.htm page.
|
||||
|
||||
|
||||
Table of Contents:
|
||||
_________________________________________________________________
|
||||
|
||||
1. Getting the Source Distribution
|
||||
|
||||
1.1 Getting the Release tarball
|
||||
|
||||
1.2 Getting from Subversion trunk
|
||||
|
||||
1.3 Source Directories Layout
|
||||
|
||||
2. Build Preparation
|
||||
|
||||
2.1 config_site.h file
|
||||
|
||||
2.2 Disk Space Requirements
|
||||
|
||||
3. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build
|
||||
Systems
|
||||
|
||||
3.1 Supported Targets
|
||||
|
||||
3.2 Requirements
|
||||
|
||||
3.3 Running configure
|
||||
|
||||
3.4 Running make
|
||||
|
||||
3.5 Cross Compilation
|
||||
|
||||
3.6 Build Customizations
|
||||
|
||||
4. Building for Windows Targets with Microsoft Visual Studio
|
||||
|
||||
4.1 Requirements
|
||||
|
||||
4.2 Building the Projects
|
||||
|
||||
4.3 Debugging the Sample Application
|
||||
|
||||
5. Building for Windows Mobile Targets (Windows CE/WinCE/PDA/SmartPhone)
|
||||
|
||||
5.1 Requirements
|
||||
|
||||
5.2 Building the Projects
|
||||
|
||||
6. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS)
|
||||
|
||||
6.1 Supported Targets
|
||||
|
||||
6.2 Invoking the Build System
|
||||
|
||||
7. Running the Applications
|
||||
|
||||
7.1 pjsua
|
||||
|
||||
7.2 Sample Applications
|
||||
|
||||
7.3 pjlib-test
|
||||
|
||||
7.4 pjsip-test
|
||||
|
||||
8. Using PJPROJECT with Applications
|
||||
|
||||
|
||||
Appendix I: Common Problems/Frequently Asked Question (FAQ)
|
||||
|
||||
I.1 fatal error C1083: Cannot open include file: 'pj/config_site.h':
|
||||
No such file or directory
|
||||
|
||||
|
||||
1. Getting the Source Code Distribution
|
||||
_________________________________________________________________
|
||||
|
||||
All libraries (PJLIB, PJLIB-UTIL, PJSIP, PJMEDIA, and PJMEDIA-CODEC) are
|
||||
currently distributed under a single source tree, collectively named as
|
||||
PJPROJECT or just PJ libraries. These libraries can be obtained by either
|
||||
downloading the release tarball or getting them from the Subversion trunk.
|
||||
|
||||
|
||||
1.1 Getting the Release tarball
|
||||
_________________________________________________________________
|
||||
|
||||
Getting the released tarball is a convenient way to obtain stable version of
|
||||
PJPROJECT. The tarball may not contain the latest features or bug-fixes, but
|
||||
normally it is considered more stable as each will be tested more rigorously
|
||||
before released.
|
||||
|
||||
The latest released tarball can be downloaded from the
|
||||
http://www.pjsip.org/download.htm.
|
||||
|
||||
|
||||
1.2 Getting from Subversion trunk
|
||||
_________________________________________________________________
|
||||
|
||||
PJPROJECT Subversion repository will always contain the latest/most
|
||||
up-to-date version of the sources. Normally the Subversion repository is
|
||||
always kept in a "good" state. However, there's always a chance that things
|
||||
break and the tree doesn't build correctly (particularly for the
|
||||
"not-so-popular" targets), so please consult the mailing list should there
|
||||
be any problems.
|
||||
|
||||
Using Subversion also has benefits of keeping the local copy of the source
|
||||
up to date with the main PJ source tree and to easily track the changes made
|
||||
to the local copy, if any.
|
||||
|
||||
|
||||
What is Subversion
|
||||
|
||||
Subversion (SVN) is Open Source version control system similar to CVS.
|
||||
Subversion homepage is in http://subversion.tigris.org/
|
||||
|
||||
|
||||
Getting Subversion Client
|
||||
|
||||
A Subversion (SVN) client is needed to download the PJ source files from
|
||||
pjsip.org SVN tree. SVN client binaries can be downloaded from
|
||||
http://subversion.tigris.org/, and the program should be available for
|
||||
Windows, Linux, MacOS X, and many more platforms.
|
||||
|
||||
|
||||
Getting the Source for The First Time
|
||||
|
||||
Once Subversion client is installed, we can use these commands to initially
|
||||
retrieve the latest sources from the Subversion trunk:
|
||||
|
||||
|
||||
|
||||
$ svn co http://svn.pjproject.net/repos/pjproject/trunk pjproject
|
||||
$ cd pjproject
|
||||
|
||||
|
||||
Keeping The Local Copy Up-to-Date
|
||||
|
||||
Once sources have been downloaded, we can keep the local copy up to date by
|
||||
periodically synchronizing the local source with the latest revision from
|
||||
the PJ's Subversion trunk. The mailing list provides best source of
|
||||
information about the availability of new updates in the trunk.
|
||||
|
||||
To update the local copy with the latest changes in the main PJ's
|
||||
repository:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ svn update
|
||||
|
||||
|
||||
Tracking Local and Remote Changes
|
||||
|
||||
To see what files have been changed locally:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ svn status
|
||||
|
||||
The above command only compares local file against the original local copy,
|
||||
so it doesn't require Internet connection while performing the check.
|
||||
|
||||
To see both what files have been changed locally and what files have been
|
||||
updated in the PJ's Subversion repository:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ svn status -u
|
||||
|
||||
Note that this command requires active Internet connection to query the
|
||||
status of PJPROJECT's source repository.
|
||||
|
||||
|
||||
1.3 Source Directories Layout
|
||||
_________________________________________________________________
|
||||
|
||||
Top-Level Directory Layout
|
||||
|
||||
The top-level directories (denoted as $TOP here) in the source distribution
|
||||
contains the following sub-directories:
|
||||
|
||||
$TOP/build
|
||||
Contains makefiles that are common for all projects.
|
||||
|
||||
$TOP/pjlib
|
||||
Contains header and source files of PJLIB. PJLIB is the base
|
||||
portability and framework library which is used by all other
|
||||
libraries
|
||||
|
||||
$TOP/pjlib-util
|
||||
Contains PJLIB-UTIL header and source files. PJLIB-UTIL is an
|
||||
auxiliary library that contains utility functions such as scanner,
|
||||
XML, STUN, MD5 algorithm, getopt() implementation, etc.
|
||||
|
||||
$TOP/pjmedia
|
||||
Contains PJMEDIA and PJMEDIA-CODEC header and source files. The
|
||||
sources of various codecs (such as GSM, Speex, and iLBC) can be found
|
||||
under this directory.
|
||||
|
||||
$TOP/pjsip
|
||||
Contains PJSIP header and source files.
|
||||
|
||||
$TOP/pjsip-apps
|
||||
Contains source code for PJSUA and various sample applications.
|
||||
|
||||
|
||||
Individual Directory Inside Each Project
|
||||
|
||||
Each library directory further contains these sub-directories:
|
||||
|
||||
bin
|
||||
Contains binaries produced by the build process.
|
||||
|
||||
build
|
||||
Contains build scripts/makefiles, project files, project workspace,
|
||||
etc. to build the project. In particular, it contains one Makefile
|
||||
file to build the project with GNU build systems, and a *.dsw
|
||||
workspace file to build the library with Microsoft Visual Studio 6 or
|
||||
later.
|
||||
|
||||
build/output
|
||||
The build/output directory contains the object files and other files
|
||||
generated by the build process. To support building multiple targets
|
||||
with a single source tree, each build target will occupy a different
|
||||
subdirectory under this directory.
|
||||
|
||||
build/wince-evc4
|
||||
This directory contains the project/workspace files to build Windows
|
||||
CE/WinCE version of the project using Microsoft Embedded Visual C++
|
||||
4.
|
||||
|
||||
build/wince-evc4/output
|
||||
This directory contains the library, executable, and object files
|
||||
generated by Windows Mobile build process.
|
||||
|
||||
docs
|
||||
Contains Doxygen configuration file (doxygen.cfg) to generate online
|
||||
documentation from the source files. The output documentation will be
|
||||
put in this directory as well (for example, docs/html directory for
|
||||
the HTML files).
|
||||
|
||||
(to generate Doxygen documentation from the source tree, just run
|
||||
"doxygen docs/doxygen.cfg" in the individual project directory. The
|
||||
generated files will reside in docs directory).
|
||||
|
||||
include
|
||||
Contains the header files for the project.
|
||||
|
||||
lib
|
||||
Contains libraries produced by the build process.
|
||||
|
||||
src
|
||||
Contains the source files of the project.
|
||||
|
||||
|
||||
2. Build Preparation
|
||||
_________________________________________________________________
|
||||
|
||||
2.1 Create config_site.h file
|
||||
_________________________________________________________________
|
||||
|
||||
Before source files can be built, the pjlib/include/pj/config_site.h file
|
||||
must be created (it can just be an empty file).
|
||||
|
||||
Note:
|
||||
When the Makefile based build system is used, this process is taken
|
||||
care by the Makefiles. But when non-Makefile based build system (such
|
||||
as Visual Studio) is used, the config_site.h file must be created
|
||||
manually.
|
||||
|
||||
|
||||
What is config_site.h File
|
||||
|
||||
The pjlib/include/pj/config_site.h contains local customizations to the
|
||||
libraries.
|
||||
|
||||
All customizations should be put in this file instead of modifying PJ's
|
||||
files, because if PJ's files get modified, then those modified files will
|
||||
not be updated the next time the source is synchronized. Or in other case,
|
||||
the local modification may be overwritten with the fresh copy from the SVN.
|
||||
|
||||
Putting the local customization to the config_site.h solves this problem,
|
||||
because this file is not included in the version control, so it will never
|
||||
be overwritten by "svn update" command.
|
||||
|
||||
Please find list of configuration macros that can be overriden from these
|
||||
files:
|
||||
* PJLIB Configuration (the pjlib/config.h file)
|
||||
* PJLIB-UTIL Configuration (the pjlib-util/config.h file)
|
||||
* PJMEDIA Configuration (the pjmedia/config.h file)
|
||||
* PJSIP Configuration (the pjsip/sip_config.h file)
|
||||
|
||||
A sample config_site.h file is also available in
|
||||
pjlib/include/config_site_sample.h.
|
||||
|
||||
|
||||
Creating config_site.h file
|
||||
|
||||
The simplest way is just to create an empty file, to use whetever default
|
||||
values set by the libraries.
|
||||
|
||||
Another way to create the config_site.h file is to write something like the
|
||||
following:
|
||||
|
||||
|
||||
// Uncomment to get minimum footprint (suitable for 1-2 concurrent calls
|
||||
only)
|
||||
//#define PJ_CONFIG_MINIMAL_SIZE
|
||||
// Uncomment to get maximum performance
|
||||
//#define PJ_CONFIG_MAXIMUM_SPEED
|
||||
#include <pj/config_site_sample.h>
|
||||
|
||||
|
||||
2.2 Disk Space Requirements
|
||||
_________________________________________________________________
|
||||
|
||||
The building process needs:
|
||||
about 50-60 MB of disk space to store the uncompressed source files, and
|
||||
* about 30-50 MB of additional space for building each target
|
||||
|
||||
(Visual Studio Debug and Release are considered as separate targets)
|
||||
|
||||
|
||||
3. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build Systems
|
||||
_________________________________________________________________
|
||||
|
||||
3.1 Supported Targets
|
||||
_________________________________________________________________
|
||||
|
||||
The new, autoconf based GNU build system can be used to build the
|
||||
libraries/applications for the following targets:
|
||||
* Linux/uC-Linux (i386, Opteron, Itanium, MIPS, PowerPC, etc.),
|
||||
* MacOS X (PowerPC),
|
||||
* mingw (i386),
|
||||
* FreeBSD and maybe other BSD's (i386, Opteron, etc.),
|
||||
* RTEMS with cross compilation (ARM, powerpc),
|
||||
* Embox RTOS (i386, ARM including STM32),
|
||||
* etc.
|
||||
|
||||
|
||||
3.2 Requirements
|
||||
_________________________________________________________________
|
||||
|
||||
In order to use PJ's GNU build system, these typical GNU tools are needed:
|
||||
* GNU make (other make will not work),
|
||||
* GNU binutils for the target, and
|
||||
* GNU gcc for the target.
|
||||
* OpenSSL header files/libraries (optional) if TLS support is wanted.
|
||||
|
||||
In addition, the appropriate "SDK" must be installed for the particular
|
||||
target (this could just be a libc and the appropriate system abstraction
|
||||
library such as Posix).
|
||||
|
||||
The build system is known to work on the following hosts:
|
||||
* Linux, many types of distributions.
|
||||
* MacOS X 10.2
|
||||
* mingw (Win2K, XP)
|
||||
* FreeBSD (must use gmake instead of make)
|
||||
|
||||
Building Win32 applications with Cygwin is currently not supported by the
|
||||
autoconf script (there is some Windows header conflicts), but one can still
|
||||
use the old configure script by calling ./configure-legacy. More over,
|
||||
cross-compilations might also work with Cygwin.
|
||||
|
||||
|
||||
3.3 Running configure
|
||||
_________________________________________________________________
|
||||
|
||||
Using Default Settings
|
||||
|
||||
Run "./configure" without any options to let the script detect the
|
||||
appropriate settings for the host:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ ./configure
|
||||
...
|
||||
|
||||
Notes:
|
||||
The default settings build the libraries in "debug" mode
|
||||
(active assert()), with default CFLAGS set to "-O2". To change
|
||||
the default CFLAGS, we can use the usual "./configure CFLAGS='-g'"
|
||||
construct. To build in "release" mode, and deactivate assert(),
|
||||
we can use "./configure CFLAGS='-DNDEBUG'".
|
||||
|
||||
Features Customization
|
||||
|
||||
With the new autoconf based build system, most configuration/customization
|
||||
can be specified as configure arguments. The list of customizable features
|
||||
can be viewed by running "./configure --help" command:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ ./configure --help
|
||||
...
|
||||
Optional Features:
|
||||
--enable-epoll Use epoll on Linux instead of select
|
||||
--disable-floating-point Disable floating point where possible
|
||||
--disable-sound Exclude sound (i.e. use null sound)
|
||||
--disable-small-filter Exclude small filter in resampling
|
||||
--disable-large-filter Exclude large filter in resampling
|
||||
--disable-g711-plc Exclude G.711 Annex A PLC
|
||||
--disable-speex-aec Exclude Speex Acoustic Echo Canceller/AEC
|
||||
--disable-g711-codec Exclude G.711 codecs from the build
|
||||
--disable-l16-codec Exclude Linear/L16 codec family from the build
|
||||
--disable-gsm-codec Exclude GSM codec in the build
|
||||
--disable-speex-codec Exclude Speex codecs in the build
|
||||
--disable-ilbc-codec Exclude iLBC codec in the build
|
||||
--disable-tls Force excluding TLS support (default is autodetected based on
|
||||
OpenSSL availability)
|
||||
...
|
||||
|
||||
Configuring Debug Version and Other Customizations
|
||||
|
||||
The configure script accepts standard customization, which details can be
|
||||
obtained by executing ./configure --help.
|
||||
|
||||
Below is an example of specifying CFLAGS in configure:
|
||||
|
||||
|
||||
|
||||
$ ./configure CFLAGS="-O3 -DNDEBUG -msoft-float -fno-builtin"
|
||||
...
|
||||
|
||||
Configuring TLS Support
|
||||
|
||||
By default, TLS support is configured based on the availability of OpenSSL
|
||||
header files and libraries. If OpenSSL is available at the default include
|
||||
and library path locations, TLS will be enabled by the configure script.
|
||||
|
||||
You can explicitly disable TLS support by giving the configure script
|
||||
--disable-tls option.
|
||||
|
||||
|
||||
3.4 Cross Compilation
|
||||
_________________________________________________________________
|
||||
|
||||
Cross compilation should be supported, using the usual autoconf syntax:
|
||||
|
||||
|
||||
|
||||
$ ./configure --host=arm-elf-linux
|
||||
...
|
||||
|
||||
Since cross-compilation is not tested as often as the "normal" build, please
|
||||
watch for the ./configure output for incorrect settings (well ideally this
|
||||
should be done for normal build too).
|
||||
|
||||
Please refer to Porting Guide for further information about porting PJ
|
||||
software.
|
||||
|
||||
|
||||
3.5 Running make
|
||||
_________________________________________________________________
|
||||
|
||||
Once the configure script completes successfully, start the build process by
|
||||
invoking these commands:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ make dep
|
||||
$ make
|
||||
|
||||
Note:
|
||||
gmake may need to be specified instead of make for some hosts, to
|
||||
invoke GNU make instead of the native make.
|
||||
|
||||
|
||||
Description of all make targets supported by the Makefile's:
|
||||
|
||||
all
|
||||
The default (or first) target to build the libraries/binaries.
|
||||
|
||||
dep, depend
|
||||
Build dependencies rule from the source files.
|
||||
|
||||
clean
|
||||
Clean the object files for current target, but keep the output
|
||||
library/binary files intact.
|
||||
|
||||
distclean, realclean
|
||||
Remove all generated files (object, libraries, binaries, and
|
||||
dependency files) for current target.
|
||||
|
||||
|
||||
Note:
|
||||
make can be invoked either in the top-level PJ directory or in build
|
||||
directory under each project to build only the particular project.
|
||||
|
||||
|
||||
3.6 Build Customizations
|
||||
_________________________________________________________________
|
||||
|
||||
Build features can be customized by specifying the options when running
|
||||
./configure as described in Running Configure above.
|
||||
|
||||
In addition, additional CFLAGS and LDFLAGS options can be put in user.mak
|
||||
file in PJ root directory (this file may need to be created if it doesn't
|
||||
exist). Below is a sample of user.mak file contents:
|
||||
|
||||
|
||||
|
||||
export CFLAGS += -msoft-float -fno-builtin
|
||||
export LDFLAGS +=
|
||||
|
||||
|
||||
4. Building for Windows Targets with Microsoft Visual Studio
|
||||
_________________________________________________________________
|
||||
|
||||
4.1 Requirements
|
||||
_________________________________________________________________
|
||||
|
||||
The Microsoft Visual Studio based project files can be used with one of the
|
||||
following:
|
||||
|
||||
* Microsoft Visual Studio 6,
|
||||
* Microsoft Visual Studio .NET 2002,
|
||||
* Microsoft Visual Studio .NET 2003,
|
||||
* Microsoft Visual C++ 2005 (including Express edition),
|
||||
|
||||
In addition, the following SDK's are needed:
|
||||
* Platform SDK, if you're using Visual Studio 2005 Express (tested with
|
||||
Platform SDK for Windows Server 2003 SP1),
|
||||
* DirectX SDK (tested with DirectX version 8 and 9),
|
||||
* OpenSSL development kit would be needed if TLS support is wanted, or
|
||||
otherwise this is optional.
|
||||
|
||||
For the host, the following are required:
|
||||
* Windows NT, 2000, XP, 2003, or later ,
|
||||
* Windows 95/98 should work too, but this has not been tested,
|
||||
* Sufficient amount of RAM for the build process (at least 256MB).
|
||||
|
||||
|
||||
Enabling TLS Support with OpenSSL
|
||||
|
||||
If TLS support is wanted, then OpenSSL SDK must be installed in the
|
||||
development host.
|
||||
|
||||
To install OpenSSL SDK from the Win32 binary distribution:
|
||||
1. Install OpenSSL SDK to any folder (e.g. C:\OpenSSL)
|
||||
2. Add OpenSSL DLL location to the system PATH.
|
||||
3. Add OpenSSL include path to Visual Studio includes search directory.
|
||||
Make sure that OpenSSL header files can be accessed from the program
|
||||
with #include <openssl/ssl.h> construct.
|
||||
4. Add OpenSSL library path to Visual Studio library search directory. Make
|
||||
sure the following libraries are accessible:
|
||||
+ For Debug build: libeay32MTd and ssleay32MTd.
|
||||
+ For Release build: libeay32MT and ssleay32MT.
|
||||
|
||||
Then to enable TLS transport support in PJSIP, just add
|
||||
|
||||
#define PJSIP_HAS_TLS_TRANSPORT 1
|
||||
|
||||
in your pj/config_site.h. When this macro is defined, OpenSSL libraries will
|
||||
be automatically linked to the application via the #pragma construct in
|
||||
sip_transport_tls_ossl.c file.
|
||||
|
||||
|
||||
4.2 Building the Projects
|
||||
_________________________________________________________________
|
||||
|
||||
Follow the steps below to build the libraries/application using Visual
|
||||
Studio:
|
||||
1. For Visual Studio 6: open pjproject.dsw workspace file.
|
||||
2. For Visual Studio 8 (VS 2005): open pjproject-vs8.sln solution file.
|
||||
3. Set pjsua as Active Project.
|
||||
4. Select Debug or Release build as appropriate.
|
||||
5. Build the project. This will build pjsua application and all libraries
|
||||
needed by pjsua.
|
||||
6. After successful build, the pjsua application will be placed in
|
||||
pjsip-apps/bin directory, and the libraries in lib directory under each
|
||||
projects.
|
||||
|
||||
To build the samples:
|
||||
1. (Still using the same workspace)
|
||||
2. Set samples project as Active Project
|
||||
3. Select Debug or Release build as appropriate.
|
||||
4. Build the project. This will build all sample applications and all
|
||||
libraries needed.
|
||||
5. After successful build, the sample applications will be placed in
|
||||
pjsip-apps/bin/samples directory, and the libraries in lib directory
|
||||
under each projects.
|
||||
|
||||
4.3 Debugging the Sample Application
|
||||
_________________________________________________________________
|
||||
|
||||
The sample applications are build using Samples.mak makefile, therefore it
|
||||
is difficult to setup debugging session in Visual Studio for these
|
||||
applications. To solve this issue, the pjsip_apps workspace contain one
|
||||
project called sample_debug which can be used to debug the sample
|
||||
application.
|
||||
|
||||
To setup debugging using sample_debug project:
|
||||
1. (Still using pjsip_apps workspace)
|
||||
2. Set sample_debug project as Active Project
|
||||
3. Edit debug.c file inside this project.
|
||||
4. Modify the #include line to include the particular sample application to
|
||||
debug
|
||||
5. Select Debug build.
|
||||
6. Build and debug the project.
|
||||
|
||||
|
||||
5. Building for Windows Mobile Targets (Windows CE/WinCE/PDA/SmartPhone)
|
||||
_________________________________________________________________
|
||||
|
||||
PJ supports building SIP and media stacks and applications for Windows
|
||||
Mobile targets. A very simple WinCE SIP user agent (with media) application
|
||||
is provided just as proof of concept that the port works.
|
||||
|
||||
5.1 Requirements
|
||||
_________________________________________________________________
|
||||
|
||||
One of the following development tools is needed to build SIP and media
|
||||
components for Windows Mobile:
|
||||
* Microsoft Embedded Visual C++ 4 with appropriate SDKs, or
|
||||
* Microsoft Visual Studio 2005 for Windows Mobile with appropriate SDKs.
|
||||
|
||||
Note that VS2005 is not directly supported (as I don't have the tools), but
|
||||
it is reported to work (I assumed that VS2005 for Windows Mobile can import
|
||||
EVC4 workspace file).
|
||||
|
||||
5.2 Building the Projects
|
||||
_________________________________________________________________
|
||||
|
||||
The Windows Mobile port is included in the main source distribution. Please
|
||||
follow the following steps to build the WinCE libraries and sample
|
||||
application:
|
||||
1. Open pjsip-apps/build/wince-evc4/wince_demos.vcw workspace file. If
|
||||
later version of EVC4 is being used, this may cause the workspace file
|
||||
to be converted to the appropriate format.
|
||||
2. Select pjsua_wince project as the Active Project.
|
||||
3. Select the appropriate SDK (for example Pocket PC 2003 SDK or SmartPhone
|
||||
2003 SDK)
|
||||
4. Select the appropriate configuration (for example, Win32 (WCE Emulator
|
||||
Debug) to debug the program in emulator, or other configurations such as
|
||||
ARMV4, MIPS, SH3, SH4, or whatever suitable for the device)
|
||||
5. Select the appropriate device (Emulator or the actual Device).
|
||||
6. Build the project. This will build the sample WinCE application and all
|
||||
libraries (SIP, Media, etc.) needed by this application.
|
||||
|
||||
Notes
|
||||
|
||||
+ If the config_site.h includes config_site_sample.h file, then
|
||||
there are certain configuration in config_site_sample.h that get
|
||||
activated for Windows CE targets. Please make sure that these
|
||||
configurations are suitable for the application.
|
||||
+ The libraries, binaries and object files produced by the build
|
||||
process are located under build/wince-evc4/output directory of each
|
||||
projects.
|
||||
|
||||
|
||||
6. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS)
|
||||
_________________________________________________________________
|
||||
|
||||
The old PJLIB build system can still be used for building PJ libraries, for
|
||||
example for RTEMS target. Please see the Porting PJLIB page in PJLIB
|
||||
Reference documentation for information on how to support new target using
|
||||
this build system.
|
||||
|
||||
6.1 Supported Targets
|
||||
_________________________________________________________________
|
||||
|
||||
The older build system supports building PJ libraries for the following
|
||||
operating systems:
|
||||
* RTEMS
|
||||
* Linux
|
||||
* MacOS X
|
||||
* Cygwin and Mingw
|
||||
|
||||
And it supports the following target architectures:
|
||||
* i386, x86_64, itanium
|
||||
* ARM
|
||||
* mips
|
||||
* powerpc
|
||||
* mpc860
|
||||
* etc.
|
||||
|
||||
For other targets, specific files need to be added to the build system,
|
||||
please see the Porting PJLIB page in PJLIB Reference documentation for
|
||||
details.
|
||||
|
||||
6.2 Invoking the Build System
|
||||
_________________________________________________________________
|
||||
|
||||
To invoke the older build system, run the following:
|
||||
|
||||
|
||||
|
||||
$ cd pjproject
|
||||
$ ./configure-legacy
|
||||
$ make dep && make clean && make
|
||||
|
||||
|
||||
|
||||
7. Running the Applications
|
||||
_________________________________________________________________
|
||||
|
||||
Upon successful build, the output libraries (PJLIB, PJLIB-UTIL, PJMEDIA,
|
||||
PJSIP, etc.) are put under ./lib sub-directory under each project directory.
|
||||
In addition, some applications may also be built, and such applications will
|
||||
be put in ./bin sub-directory under each project directory.
|
||||
|
||||
|
||||
7.1 pjsua
|
||||
_________________________________________________________________
|
||||
|
||||
pjsua is the reference implementation for both PJSIP and PJMEDIA stack, and
|
||||
is the main target of the build system. Upon successful build, pjsua
|
||||
application will be put in pjsip-apps/bin directory.
|
||||
|
||||
pjsua manual can be found in pjsua Manual Page.
|
||||
|
||||
|
||||
7.2 Sample Applications
|
||||
_________________________________________________________________
|
||||
|
||||
Sample applications will be built with the Makefile build system. For Visual
|
||||
Studio, you have to build the samples manually by selecting and building the
|
||||
Samples project inside pjsip-apps/build/pjsip_apps.dsw project workspace.
|
||||
|
||||
Upon successful build, the sample applications are put in
|
||||
pjsip-apps/bin/samples directory.
|
||||
|
||||
The sample applications are described in PJMEDIA Samples Page and
|
||||
PJSIP Samples Page in the website.
|
||||
|
||||
|
||||
7.3 pjlib-test
|
||||
_________________________________________________________________
|
||||
|
||||
pjlib-test contains comprehensive tests for testing PJLIB functionality.
|
||||
This application will only be built when the Makefile build system is used;
|
||||
with Visual Studio, one has to open pjlib.dsw project in pjlib/build
|
||||
directory to build this application.
|
||||
|
||||
If you're porting PJLIB to new target, it is recommended to run this
|
||||
application to make sure that all functionalities works as expected.
|
||||
|
||||
|
||||
7.4 pjsip-test
|
||||
_________________________________________________________________
|
||||
|
||||
pjsip-test contains codes for testing various SIP functionalities in PJSIP
|
||||
and also to benchmark static performance metrics such as message parsing per
|
||||
second.
|
||||
|
||||
|
||||
|
||||
8. Using PJPROJECT with Applications
|
||||
_________________________________________________________________
|
||||
|
||||
Regardless of the build system being used, the following tasks are normally
|
||||
needed to be done in order to build application to use PJSIP and PJMEDIA:
|
||||
1. Put these include directories in the include search path:
|
||||
+ pjlib/include
|
||||
+ pjlib-util/include
|
||||
+ pjmedia/include
|
||||
+ pjsip/include
|
||||
2. Put these library directories in the library search path:
|
||||
+ pjlib/lib
|
||||
+ pjlib-util/lib
|
||||
+ pjmedia/lib
|
||||
+ pjsip/lib
|
||||
3. Include the relevant PJ header files in the application source file. For
|
||||
example, using these would include ALL APIs exported by PJ:
|
||||
|
||||
#include <pjlib.h>
|
||||
#include <pjlib-util.h>
|
||||
#include <pjsip.h>
|
||||
#include <pjsip_ua.h>
|
||||
#include <pjsip_simple.h>
|
||||
#include <pjsua.h>
|
||||
#include <pjmedia.h>
|
||||
#include <pjmedia-codec.h>
|
||||
(Note: the documentation of the relevant libraries should say which
|
||||
header files should be included to get the declaration of the APIs).
|
||||
4. Declare the OS macros.
|
||||
+ For Windows applications built with Visual Studio, we need to
|
||||
declare PJ_WIN32=1 macro in the project settings (declaring the
|
||||
macro in the source file may not be sufficient).
|
||||
+ For Windows Mobile applications build with Visual C++, we need to
|
||||
declare PJ_WIN32_WINCE=1 macro in the project settings.
|
||||
+ For GNU build system/autoconf based build system, we need to
|
||||
declare PJ_AUTOCONF=1 macro when compiling the applications.
|
||||
(Note: the old PJ build system requires declaring the target processor
|
||||
with PJ_M_XXX=1 macro, but this has been made obsolete. The target
|
||||
processor will be detected from compiler's predefined macro by
|
||||
pjlib/config.h file).
|
||||
5. Link with the appropriate PJ libraries. The following libraries will
|
||||
need to be included in the library link specifications:
|
||||
|
||||
pjlib
|
||||
Base library used by all libraries.
|
||||
|
||||
pjlib-util
|
||||
Auxiliary library containing scanner, XML, STUN, MD5, getopt,
|
||||
etc, used by the SIP and media stack.
|
||||
|
||||
pjsip
|
||||
SIP core stack library.
|
||||
|
||||
pjsip-ua
|
||||
SIP user agent library containing INVITE session, call
|
||||
transfer, client registration, etc.
|
||||
|
||||
pjsip-simple
|
||||
SIP SIMPLE library for base event framework, presence, instant
|
||||
messaging, etc.
|
||||
|
||||
pjsua
|
||||
High level SIP UA library, combining SIP and media stack into
|
||||
high-level easy to use API.
|
||||
|
||||
pjmedia
|
||||
The media framework.
|
||||
|
||||
pjmedia-codec
|
||||
Container library for various codecs such as GSM, Speex, and
|
||||
iLBC.
|
||||
|
||||
|
||||
Note: the actual library names will be appended with the target name and the
|
||||
build configuration. For example:
|
||||
|
||||
For Visual Studio builds
|
||||
The actual library names will look like
|
||||
pjlib-i386-win32-vc6-debug.lib,
|
||||
pjlib-i386-win32-vc6-release.lib, etc., depending on whether we
|
||||
are building the Debug or Release version of the library.
|
||||
|
||||
An easier way to link with the libraries is to include PJ
|
||||
project files in the workspace, and to configure project
|
||||
dependencies so that the application depends on the PJ
|
||||
libraries. This way, we don't need to manually add each PJ
|
||||
libraries to the input library file specification, since VS
|
||||
will automatically link the dependency libraries with the
|
||||
application.
|
||||
|
||||
For Windows Mobile builds
|
||||
Unfortunately the PJ libraries built for Windows Mobile will
|
||||
not be placed in the usual lib directory, but rather under the
|
||||
output directory under build/wince-evc4 project directory.
|
||||
|
||||
An easier way to link with the libraries is to include PJ
|
||||
project files in the workspace, and to configure project
|
||||
dependencies so that the application depends on the PJ
|
||||
libraries. This way, we don't need to manually add each PJ
|
||||
libraries to the input library file specification, since VS
|
||||
will automatically link the dependency libraries with the
|
||||
application.
|
||||
|
||||
For GNU builds
|
||||
Application's Makefile can get the PJ library suffix by
|
||||
including PJ's build.mak file from the root PJ directory (the
|
||||
suffix is contained in TARGET_NAME variable). For example, to
|
||||
link with PJLIB and PJMEDIA, we can use this syntax in the
|
||||
LDFLAGS: "-lpj-$(TARGET_NAME) -lpjmedia-$(TARGET_NAME)"
|
||||
|
||||
|
||||
6. Link with system spesific libraries:
|
||||
|
||||
Windows
|
||||
Add (among other things): wsock32.lib, ws2_32.lib, ole32.lib,
|
||||
dsound.lib
|
||||
|
||||
Linux, *nix, *BSD
|
||||
Add (among other things): '-lpthread -lm' (at least).
|
||||
|
||||
MacOS X
|
||||
Add (among other things): '-framework CoreAudio -lpthread -lm'.
|
||||
|
||||
|
||||
Appendix I: Common Problems/Frequently Asked Question (FAQ)
|
||||
_________________________________________________________________
|
||||
|
||||
I.1 fatal error C1083: Cannot open include file: 'pj/config_site.h': No such
|
||||
file or directory
|
||||
|
||||
This error normally occurs when the config_site.h file has not been created.
|
||||
This file needs to be created manually (an empty file is sufficient). Please
|
||||
follow the Build Preparation instructions above to create this file.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
_________________________________________________________________
|
||||
|
||||
Feedback:
|
||||
Thanks for using PJ libraries and for reading this document. Please
|
||||
send feedbacks or general comments to <bennylp at pjsip dot org>.
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,44 +0,0 @@
|
|||
#
|
||||
# This is a utility make file that is used to generate BB10 config settings
|
||||
# from current build settings. The stdout output of this make file can be
|
||||
# saved to a .pri file which then can be included in app's .pro file.
|
||||
#
|
||||
# This make file is invoked by configure-bb10 script to generate pjsip.pri
|
||||
# file.
|
||||
#
|
||||
include build.mak
|
||||
|
||||
# Generate library list (the "-lxxx" options) from list of linked libraries.
|
||||
PJ_BB_LIBS = $(filter-out -lm -lsocket, $(APP_LDLIBS))
|
||||
|
||||
# This used to generate the library path list (the "-Lxxx" options)
|
||||
# We replace the path with "$$PJ_DIR"
|
||||
PJ_BB_LDFLAGS = $(subst $(PJDIR),\$$\$$PJ_DIR,$(APP_LDFLAGS))
|
||||
|
||||
all:
|
||||
@echo PJ_DIR = $(PJDIR)
|
||||
@echo
|
||||
@echo 'DEFINES += PJ_AUTOCONF'
|
||||
@echo
|
||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjlib/include)'
|
||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjmedia/include)'
|
||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjnath/include)'
|
||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjlib-util/include)'
|
||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjsip/include)'
|
||||
@echo
|
||||
@for token in $(PJ_BB_LDFLAGS); do \
|
||||
if echo $$token | grep -- '-L' >> /dev/null; then \
|
||||
echo "PJ_LIBPATH += \$$\$$quote($$token)"; \
|
||||
fi; \
|
||||
done
|
||||
@echo
|
||||
@for token in $(PJ_BB_LIBS); do \
|
||||
echo PJ_LIBS += $$token; \
|
||||
done
|
||||
@echo
|
||||
@echo 'INCLUDEPATH += $$$$PJ_INCLUDEPATH'
|
||||
@echo 'LIBS += $$$$PJ_LIBPATH'
|
||||
@echo 'LIBS += $$$$PJ_LIBS'
|
||||
@echo 'LIBS += -lOpenAL -lalut -laudio_manager -lsocket -lasound -lbbsystem -lm'
|
||||
|
||||
|
|
@ -1,339 +0,0 @@
|
|||
export PJDIR := @ac_pjdir@
|
||||
include $(PJDIR)/version.mak
|
||||
export PJ_DIR := $(PJDIR)
|
||||
|
||||
# @configure_input@
|
||||
export MACHINE_NAME := auto
|
||||
export OS_NAME := auto
|
||||
export HOST_NAME := unix
|
||||
export CC_NAME := gcc
|
||||
export TARGET_ARCH := @ac_target_arch@
|
||||
export TARGET_NAME := @target@
|
||||
export CROSS_COMPILE := @ac_cross_compile@
|
||||
export LINUX_POLL := @ac_linux_poll@
|
||||
export SHLIB_SUFFIX := @ac_shlib_suffix@
|
||||
|
||||
export prefix := @prefix@
|
||||
export exec_prefix := @exec_prefix@
|
||||
export includedir := @includedir@
|
||||
export libdir := @libdir@
|
||||
|
||||
LIB_SUFFIX := $(TARGET_NAME).a
|
||||
|
||||
ifeq (@ac_shared_libraries@,1)
|
||||
export PJ_SHARED_LIBRARIES := 1
|
||||
endif
|
||||
|
||||
ifeq (@ac_no_pjsua2@,1)
|
||||
export PJ_EXCLUDE_PJSUA2 := 1
|
||||
endif
|
||||
|
||||
ifndef EXCLUDE_APP
|
||||
ifeq ($(findstring android,$(TARGET_NAME)),)
|
||||
export EXCLUDE_APP := 0
|
||||
else
|
||||
export EXCLUDE_APP := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
# Determine which party libraries to use
|
||||
export APP_THIRD_PARTY_EXT :=
|
||||
export APP_THIRD_PARTY_LIBS :=
|
||||
export APP_THIRD_PARTY_LIB_FILES :=
|
||||
|
||||
ifneq (@ac_external_srtp@,0)
|
||||
# External SRTP library
|
||||
APP_THIRD_PARTY_EXT += -l@ac_external_srtp_lib@
|
||||
else
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lsrtp-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lsrtp
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (@ac_pjmedia_resample@,libresample)
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
ifeq (@ac_resample_dll@,1)
|
||||
export PJ_RESAMPLE_DLL := 1
|
||||
APP_THIRD_PARTY_LIBS += -lresample
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lresample-$(TARGET_NAME)
|
||||
endif
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lresample
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_gsm_codec@,1)
|
||||
ifeq (@ac_external_gsm@,1)
|
||||
# External GSM library
|
||||
APP_THIRD_PARTY_EXT += -lgsm
|
||||
else
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lgsmcodec-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lgsmcodec
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_speex_codec@,1)
|
||||
ifeq (@ac_external_speex@,1)
|
||||
APP_THIRD_PARTY_EXT += -lspeex -lspeexdsp
|
||||
else
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lspeex-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lspeex
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_ilbc_codec@,1)
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lilbccodec-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lilbccodec
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_g7221_codec@,1)
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lg7221codec-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lg7221codec
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (@ac_external_pa@,1)
|
||||
# External PA
|
||||
APP_THIRD_PARTY_EXT += -lportaudio
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_yuv@,1)
|
||||
ifeq (@ac_external_yuv@,1)
|
||||
APP_THIRD_PARTY_EXT += -lyuv
|
||||
else
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lyuv-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lyuv
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (@ac_no_webrtc@,1)
|
||||
ifeq (@ac_external_webrtc@,1)
|
||||
APP_THIRD_PARTY_EXT += -lwebrtc
|
||||
else
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-$(LIB_SUFFIX)
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
APP_THIRD_PARTY_LIBS += -lwebrtc-$(TARGET_NAME)
|
||||
else
|
||||
APP_THIRD_PARTY_LIBS += -lwebrtc
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# Additional flags
|
||||
@ac_build_mak_vars@
|
||||
|
||||
#
|
||||
# Video
|
||||
# Note: there are duplicated macros in pjmedia/os-auto.mak.in (and that's not
|
||||
# good!
|
||||
|
||||
# SDL flags
|
||||
SDL_CFLAGS = @ac_sdl_cflags@
|
||||
SDL_LDFLAGS = @ac_sdl_ldflags@
|
||||
|
||||
# FFMPEG flags
|
||||
FFMPEG_CFLAGS = @ac_ffmpeg_cflags@
|
||||
FFMPEG_LDFLAGS = @ac_ffmpeg_ldflags@
|
||||
|
||||
# Video4Linux2
|
||||
V4L2_CFLAGS = @ac_v4l2_cflags@
|
||||
V4L2_LDFLAGS = @ac_v4l2_ldflags@
|
||||
|
||||
# OPENH264 flags
|
||||
OPENH264_CFLAGS = @ac_openh264_cflags@
|
||||
OPENH264_LDFLAGS = @ac_openh264_ldflags@
|
||||
|
||||
# VPX flags
|
||||
VPX_CFLAGS = @ac_vpx_cflags@
|
||||
VPX_LDFLAGS = @ac_vpx_ldflags@
|
||||
|
||||
# QT
|
||||
AC_PJMEDIA_VIDEO_HAS_QT = @ac_pjmedia_video_has_qt@
|
||||
# QT_CFLAGS = @ac_qt_cflags@
|
||||
|
||||
# Darwin (Mac and iOS)
|
||||
AC_PJMEDIA_VIDEO_HAS_DARWIN = @ac_pjmedia_video_has_darwin@
|
||||
AC_PJMEDIA_VIDEO_HAS_VTOOLBOX = @ac_pjmedia_video_has_vtoolbox@
|
||||
AC_PJMEDIA_VIDEO_HAS_IOS_OPENGL = @ac_pjmedia_video_has_ios_opengl@
|
||||
DARWIN_CFLAGS = @ac_darwin_cflags@
|
||||
|
||||
# mingw
|
||||
AC_PJMEDIA_VIDEO_DEV_HAS_DSHOW = @ac_pjmedia_video_dev_has_dshow@
|
||||
ifeq (@ac_pjmedia_video_dev_has_dshow@,yes)
|
||||
DSHOW_CFLAGS = @ac_dshow_cflags@
|
||||
DSHOW_LDFLAGS = @ac_dshow_ldflags@
|
||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libbaseclasses-$(LIB_SUFFIX)
|
||||
APP_THIRD_PARTY_LIBS += -lbaseclasses-$(TARGET_NAME)
|
||||
endif
|
||||
|
||||
# Android
|
||||
ANDROID_CFLAGS = @ac_android_cflags@
|
||||
|
||||
# PJMEDIA features exclusion
|
||||
PJ_VIDEO_CFLAGS += $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(DSHOW_CFLAGS) $(QT_CFLAGS) \
|
||||
$(OPENH264_CFLAGS) $(VPX_CFLAGS) $(DARWIN_CFLAGS)
|
||||
PJ_VIDEO_LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS) $(DSHOW_LDFLAGS) \
|
||||
$(OPENH264_LDFLAGS) $(VPX_LDFLAGS)
|
||||
|
||||
# CFLAGS, LDFLAGS, and LIBS to be used by applications
|
||||
export APP_CC := @CC@
|
||||
export APP_CXX := @CXX@
|
||||
export APP_CFLAGS := -DPJ_AUTOCONF=1\
|
||||
@CFLAGS@\
|
||||
$(PJ_VIDEO_CFLAGS) \
|
||||
-I$(PJDIR)/pjlib/include\
|
||||
-I$(PJDIR)/pjlib-util/include\
|
||||
-I$(PJDIR)/pjnath/include\
|
||||
-I$(PJDIR)/pjmedia/include\
|
||||
-I$(PJDIR)/pjsip/include
|
||||
export APP_CXXFLAGS := @CXXFLAGS@ $(APP_CFLAGS)
|
||||
export APP_LDFLAGS := -L$(PJDIR)/pjlib/lib\
|
||||
-L$(PJDIR)/pjlib-util/lib\
|
||||
-L$(PJDIR)/pjnath/lib\
|
||||
-L$(PJDIR)/pjmedia/lib\
|
||||
-L$(PJDIR)/pjsip/lib\
|
||||
-L$(PJDIR)/third_party/lib\
|
||||
$(PJ_VIDEO_LDFLAGS) \
|
||||
@LDFLAGS@
|
||||
export APP_LDXXFLAGS := $(APP_LDFLAGS)
|
||||
|
||||
export APP_LIB_FILES := \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip-ua-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip-simple-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-codec-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-videodev-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjnath/lib/libpjnath-$(LIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjlib-util/lib/libpjlib-util-$(LIB_SUFFIX) \
|
||||
$(APP_THIRD_PARTY_LIB_FILES) \
|
||||
$(PJ_DIR)/pjlib/lib/libpj-$(LIB_SUFFIX)
|
||||
export APP_LIBXX_FILES := \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) \
|
||||
$(APP_LIB_FILES)
|
||||
|
||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
||||
export PJLIB_LDLIB := -lpj-$(TARGET_NAME)
|
||||
export PJLIB_UTIL_LDLIB := -lpjlib-util-$(TARGET_NAME)
|
||||
export PJNATH_LDLIB := -lpjnath-$(TARGET_NAME)
|
||||
export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev-$(TARGET_NAME)
|
||||
export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev-$(TARGET_NAME)
|
||||
export PJMEDIA_LDLIB := -lpjmedia-$(TARGET_NAME)
|
||||
export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec-$(TARGET_NAME)
|
||||
export PJSIP_LDLIB := -lpjsip-$(TARGET_NAME)
|
||||
export PJSIP_SIMPLE_LDLIB := -lpjsip-simple-$(TARGET_NAME)
|
||||
export PJSIP_UA_LDLIB := -lpjsip-ua-$(TARGET_NAME)
|
||||
export PJSUA_LIB_LDLIB := -lpjsua-$(TARGET_NAME)
|
||||
export PJSUA2_LIB_LDLIB := -lpjsua2-$(TARGET_NAME)
|
||||
else
|
||||
export PJLIB_LDLIB := -lpj
|
||||
export PJLIB_UTIL_LDLIB := -lpjlib-util
|
||||
export PJNATH_LDLIB := -lpjnath
|
||||
export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev
|
||||
export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev
|
||||
export PJMEDIA_LDLIB := -lpjmedia
|
||||
export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec
|
||||
export PJSIP_LDLIB := -lpjsip
|
||||
export PJSIP_SIMPLE_LDLIB := -lpjsip-simple
|
||||
export PJSIP_UA_LDLIB := -lpjsip-ua
|
||||
export PJSUA_LIB_LDLIB := -lpjsua
|
||||
export PJSUA2_LIB_LDLIB := -lpjsua2
|
||||
|
||||
export ADD_LIB_FILES := $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX) \
|
||||
$(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX)
|
||||
|
||||
APP_LIB_FILES += $(ADD_LIB_FILES)
|
||||
|
||||
APP_LIBXX_FILES += $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX) \
|
||||
$(ADD_LIB_FILES)
|
||||
endif
|
||||
|
||||
ifeq ($(PJ_EXCLUDE_PJSUA2),1)
|
||||
export PJSUA2_LIB_LDLIB :=
|
||||
endif
|
||||
|
||||
export APP_LDLIBS := $(PJSUA_LIB_LDLIB) \
|
||||
$(PJSIP_UA_LDLIB) \
|
||||
$(PJSIP_SIMPLE_LDLIB) \
|
||||
$(PJSIP_LDLIB) \
|
||||
$(PJMEDIA_CODEC_LDLIB) \
|
||||
$(PJMEDIA_LDLIB) \
|
||||
$(PJMEDIA_VIDEODEV_LDLIB) \
|
||||
$(PJMEDIA_AUDIODEV_LDLIB) \
|
||||
$(PJMEDIA_LDLIB) \
|
||||
$(PJNATH_LDLIB) \
|
||||
$(PJLIB_UTIL_LDLIB) \
|
||||
$(APP_THIRD_PARTY_LIBS)\
|
||||
$(APP_THIRD_PARTY_EXT)\
|
||||
$(PJLIB_LDLIB) \
|
||||
@LIBS@
|
||||
export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
|
||||
-lstdc++ \
|
||||
$(APP_LDLIBS)
|
||||
|
||||
# Here are the variables to use if application is using the library
|
||||
# from within the source distribution
|
||||
export PJ_CC := $(APP_CC)
|
||||
export PJ_CXX := $(APP_CXX)
|
||||
export PJ_CFLAGS := $(APP_CFLAGS)
|
||||
export PJ_CXXFLAGS := $(APP_CXXFLAGS)
|
||||
export PJ_LDFLAGS := $(APP_LDFLAGS)
|
||||
export PJ_LDXXFLAGS := $(APP_LDXXFLAGS)
|
||||
export PJ_LDLIBS := $(APP_LDLIBS)
|
||||
export PJ_LDXXLIBS := $(APP_LDXXLIBS)
|
||||
export PJ_LIB_FILES := $(APP_LIB_FILES)
|
||||
export PJ_LIBXX_FILES := $(APP_LIBXX_FILES)
|
||||
|
||||
# And here are the variables to use if application is using the
|
||||
# library from the install location (i.e. --prefix)
|
||||
export PJ_INSTALL_DIR := @prefix@
|
||||
export PJ_INSTALL_INC_DIR := @includedir@
|
||||
export PJ_INSTALL_LIB_DIR := @libdir@
|
||||
export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
|
||||
export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@
|
||||
export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS))
|
|
@ -1,7 +0,0 @@
|
|||
@rem set MWSym2Libraries=1
|
||||
@rem set EPOCROOT=\Symbian\9.1\S60_3rd\
|
||||
@rem set EPOCROOT=\Symbian\9.1\S60_3rd_MR_2\
|
||||
@rem set EPOCROOT=\Symbian\UIQ3SDK\
|
||||
@rem set EPOCROOT=\symbian\UIQ3.1\
|
||||
@rem set EPOCROOT=\symbian\9.2\S60_3rd_FP1\
|
||||
bldmake bldfiles
|
|
@ -1,7 +0,0 @@
|
|||
@rem call abld build -v vs6 udeb
|
||||
@rem call abld build -v gcce urel
|
||||
@rem call abld build winscw udeb
|
||||
call abld build %1 %2 %3 %4
|
||||
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
prj_platforms
|
||||
winscw
|
||||
armv5
|
||||
gcce
|
||||
|
||||
prj_mmpfiles
|
||||
|
||||
/* Libraries */
|
||||
pjlib.mmp
|
||||
pjlib_util.mmp
|
||||
pjnath.mmp
|
||||
pjsdp.mmp
|
||||
pjmedia.mmp
|
||||
pjsip.mmp
|
||||
pjsip_simple.mmp
|
||||
pjsip_ua.mmp
|
||||
pjsua_lib.mmp
|
||||
libsrtp.mmp
|
||||
|
||||
/* Codecs */
|
||||
libgsmcodec.mmp
|
||||
libspeexcodec.mmp
|
||||
libg7221codec.mmp
|
||||
libpassthroughcodec.mmp
|
||||
|
||||
/* Resample */
|
||||
libresample.mmp
|
||||
|
||||
/* Audio device. */
|
||||
pjmedia_audiodev.mmp
|
||||
|
||||
/* Applications */
|
||||
//symsndtest.mmp
|
||||
pjlib_test.mmp
|
||||
../pjsip-apps/src/pjsua/symbian/group/pjsua.mmp
|
|
@ -1,56 +0,0 @@
|
|||
TARGET libg7221codec.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
//OPTION CW -lang c++
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// GSM codec third party source
|
||||
//
|
||||
|
||||
SOURCEPATH ..\third_party\g7221\common
|
||||
|
||||
SOURCE basic_op.c
|
||||
SOURCE common.c
|
||||
SOURCE huff_tab.c
|
||||
SOURCE tables.c
|
||||
|
||||
SOURCEPATH ..\third_party\g7221\decode
|
||||
|
||||
SOURCE coef2sam.c
|
||||
SOURCE dct4_s.c
|
||||
SOURCE decoder.c
|
||||
|
||||
SOURCEPATH ..\third_party\g7221\encode
|
||||
|
||||
SOURCE dct4_a.c
|
||||
SOURCE encoder.c
|
||||
SOURCE sam2coef.c
|
||||
|
||||
|
||||
//
|
||||
// GSM codec wrapper for pjmedia-codec
|
||||
//
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
||||
SOURCE g7221.c
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\third_party
|
||||
SYSTEMINCLUDE ..\third_party\g7221\common
|
||||
SYSTEMINCLUDE ..\third_party\g7221\decode
|
||||
SYSTEMINCLUDE ..\third_party\g7221\encode
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET libgsmcodec.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA000000F
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjlib.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\libgsmcodec.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET libgsmcodec.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
//OPTION CW -lang c++
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// GSM codec third party source
|
||||
//
|
||||
|
||||
SOURCEPATH ..\third_party\gsm\src
|
||||
|
||||
SOURCE add.c
|
||||
SOURCE code.c
|
||||
SOURCE debug.c
|
||||
SOURCE decode.c
|
||||
SOURCE gsm_create.c
|
||||
SOURCE gsm_decode.c
|
||||
SOURCE gsm_destroy.c
|
||||
SOURCE gsm_encode.c
|
||||
SOURCE gsm_explode.c
|
||||
SOURCE gsm_implode.c
|
||||
SOURCE gsm_option.c
|
||||
SOURCE gsm_print.c
|
||||
SOURCE long_term.c
|
||||
SOURCE lpc.c
|
||||
SOURCE preprocess.c
|
||||
SOURCE rpe.c
|
||||
SOURCE short_term.c
|
||||
SOURCE table.c
|
||||
|
||||
|
||||
//
|
||||
// GSM codec wrapper for pjmedia-codec
|
||||
//
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
||||
SOURCE gsm.c
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\third_party\build\gsm
|
||||
SYSTEMINCLUDE ..\third_party\gsm\inc
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
TARGET libpassthroughcodec.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
MACRO HAVE_CONFIG_H
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
//
|
||||
// Passthrough codecs wrapper for pjmedia-codec
|
||||
//
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
||||
SOURCE passthrough.c
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
@ -1,26 +0,0 @@
|
|||
TARGET libresample.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
SOURCEPATH ..\third_party\resample\src
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
MACRO RESAMPLE_HAS_SMALL_FILTER=1
|
||||
MACRO RESAMPLE_HAS_LARGE_FILTER=0
|
||||
|
||||
SOURCE resamplesubs.c
|
||||
|
||||
SYSTEMINCLUDE ..\third_party\resample\include
|
||||
SYSTEMINCLUDE ..\third_party\build\resample
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
TARGET libspeexcodec.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
MACRO HAVE_CONFIG_H
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
//
|
||||
// Speex files
|
||||
//
|
||||
SOURCEPATH ..\third_party\speex\libspeex
|
||||
|
||||
SOURCE bits.c
|
||||
SOURCE cb_search.c
|
||||
SOURCE exc_5_64_table.c
|
||||
SOURCE exc_5_256_table.c
|
||||
SOURCE exc_8_128_table.c
|
||||
SOURCE exc_10_16_table.c
|
||||
SOURCE exc_10_32_table.c
|
||||
SOURCE exc_20_32_table.c
|
||||
SOURCE fftwrap.c
|
||||
SOURCE filterbank.c
|
||||
SOURCE filters.c
|
||||
SOURCE gain_table.c
|
||||
SOURCE gain_table_lbr.c
|
||||
SOURCE hexc_10_32_table.c
|
||||
SOURCE hexc_table.c
|
||||
SOURCE high_lsp_tables.c
|
||||
SOURCE kiss_fft.c
|
||||
SOURCE kiss_fftr.c
|
||||
SOURCE lpc.c
|
||||
SOURCE lsp.c
|
||||
SOURCE lsp_tables_nb.c
|
||||
SOURCE ltp.c
|
||||
SOURCE mdf.c
|
||||
SOURCE modes.c
|
||||
SOURCE modes_wb.c
|
||||
SOURCE nb_celp.c
|
||||
SOURCE preprocess.c
|
||||
SOURCE quant_lsp.c
|
||||
SOURCE sb_celp.c
|
||||
SOURCE smallft.c
|
||||
SOURCE speex.c
|
||||
SOURCE speex_callbacks.c
|
||||
SOURCE speex_header.c
|
||||
SOURCE stereo.c
|
||||
SOURCE vbr.c
|
||||
SOURCE vq.c
|
||||
SOURCE window.c
|
||||
|
||||
//
|
||||
// Speex codec wrapper for pjmedia-codec
|
||||
//
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
||||
SOURCE speex_codec.c
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
SYSTEMINCLUDE ..\third_party\speex\include\speex
|
||||
SYSTEMINCLUDE ..\third_party\speex\include
|
||||
SYSTEMINCLUDE ..\third_party\speex\symbian
|
||||
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
@ -1,60 +0,0 @@
|
|||
TARGET libsrtp.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
//
|
||||
// Speex files
|
||||
//
|
||||
SOURCEPATH ..\third_party\srtp
|
||||
|
||||
SOURCE crypto\ae_xfm\xfm.c
|
||||
SOURCE crypto\cipher\aes.c
|
||||
SOURCE crypto\cipher\aes_cbc.c
|
||||
SOURCE crypto\cipher\aes_icm.c
|
||||
SOURCE crypto\cipher\cipher.c
|
||||
SOURCE crypto\cipher\null_cipher.c
|
||||
SOURCE crypto\hash\auth.c
|
||||
SOURCE crypto\hash\hmac.c
|
||||
SOURCE crypto\hash\null_auth.c
|
||||
SOURCE crypto\hash\sha1.c
|
||||
SOURCE crypto\kernel\alloc.c
|
||||
SOURCE crypto\kernel\crypto_kernel.c
|
||||
//SOURCE crypto\kernel\err.c
|
||||
SOURCE crypto\kernel\key.c
|
||||
SOURCE crypto\math\datatypes.c
|
||||
SOURCE crypto\math\gf2_8.c
|
||||
//SOURCE crypto\math\math.c
|
||||
SOURCE crypto\math\stat.c
|
||||
SOURCE crypto\replay\rdb.c
|
||||
SOURCE crypto\replay\rdbx.c
|
||||
//SOURCE crypto\replay\ut_sim.c
|
||||
SOURCE crypto\rng\ctr_prng.c
|
||||
SOURCE crypto\rng\prng.c
|
||||
//SOURCE crypto\rng\rand_linux_kernel.c
|
||||
SOURCE crypto\rng\rand_source.c
|
||||
SOURCE pjlib\srtp_err.c
|
||||
SOURCE srtp\srtp.c
|
||||
SOURCE tables\aes_tables.c
|
||||
|
||||
//SOURCEPATH ..\pjmedia\src\pjmedia
|
||||
|
||||
//SOURCE transport_srtp.c
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
SYSTEMINCLUDE ..\third_party\srtp\include
|
||||
SYSTEMINCLUDE ..\third_party\srtp\crypto\include
|
||||
SYSTEMINCLUDE ..\third_party\build\srtp
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
@ -1,80 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
MMP=$1
|
||||
if test "$MMP" == ""; then
|
||||
echo "Usage: makedef.sh FILE.MMP"
|
||||
echo " or makedef.sh all"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test "$MMP" == "all"; then
|
||||
. $0 pjlib.mmp
|
||||
. $0 pjlib_util.mmp
|
||||
. $0 pjnath.mmp
|
||||
. $0 pjmedia.mmp
|
||||
. $0 pjsdp.mmp
|
||||
. $0 pjsip.mmp
|
||||
. $0 pjsip_simple.mmp
|
||||
. $0 pjsip_ua.mmp
|
||||
. $0 pjsua_lib.mmp
|
||||
. $0 symbian_audio.mmp
|
||||
. $0 null_audio.mmp
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -f $MMP; then
|
||||
true
|
||||
else
|
||||
echo "Unable to open $MMP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TARGET=`grep -w '^TARGET' $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1`
|
||||
DEFFILE="${TARGET}U.def"
|
||||
SOURCES=`grep -w '^SOURCE' $MMP | awk '{print $2}' | tr '\\\\' '/'`
|
||||
SOURCEPATH=`grep -w '^SOURCEPATH' $MMP | tr '\\\\' '/' | awk '{print $2}'`
|
||||
INCPATH=`grep 'INCLUDE' $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'`
|
||||
INCLUDE=""
|
||||
for INC in $INCPATH; do
|
||||
INCLUDE=`echo $INCLUDE -I$INC`
|
||||
done
|
||||
|
||||
#-- debug --
|
||||
#echo TARGET=$TARGET
|
||||
#echo SOURCES=$SOURCES
|
||||
#echo SOURCEPATH=$SOURCEPATH
|
||||
#echo INCLUDE=$INCLUDE
|
||||
#-- end --
|
||||
|
||||
echo > tmpnames.def
|
||||
|
||||
echo "${TARGET}:"
|
||||
|
||||
for file in $SOURCES; do
|
||||
#SYMBOLS=`grep PJ_DEF ${SOURCEPATH}/$file | awk -F ')' '{print $2}' | awk -F '(' '{print $1}' | awk -F '=' '{print $1}' | tr -d '[:blank:]' | sort | uniq`
|
||||
SYMBOLS=`
|
||||
cpp -DPJ_SYMBIAN=1 -DPJ_DLL -DPJ_EXPORTING=1 $INCLUDE ${SOURCEPATH}/$file 2>&1 |
|
||||
grep EXPORT_C |
|
||||
sed 's/(/;/' |
|
||||
sed 's/=/;/' |
|
||||
awk -F ';' '{print $1}' |
|
||||
awk '{print $NF}'`
|
||||
echo Processing ${SOURCEPATH}/$file..
|
||||
for SYM in $SYMBOLS; do
|
||||
echo $SYM >> tmpnames.def
|
||||
done
|
||||
done
|
||||
|
||||
echo "Writing $DEFFILE"
|
||||
echo EXPORTS > $DEFFILE
|
||||
i=0
|
||||
for SYM in `cat tmpnames.def | sort | uniq`; do
|
||||
echo " $SYM"
|
||||
i=`expr $i + 1`
|
||||
printf "\\t%-40s @ $i NONAME\\n" $SYM >> $DEFFILE
|
||||
done
|
||||
|
||||
|
||||
echo
|
||||
echo "Done. Total $i symbols exported in $DEFFILE."
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET null_audio.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000000
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjlib.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\null_audio.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET null_audio.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
||||
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// Platform independent source
|
||||
//
|
||||
SOURCE nullsound.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
EXPORTS
|
||||
pjmedia_snd_deinit @ 1 NONAME
|
||||
pjmedia_snd_get_dev_count @ 2 NONAME
|
||||
pjmedia_snd_get_dev_info @ 3 NONAME
|
||||
pjmedia_snd_init @ 4 NONAME
|
||||
pjmedia_snd_open @ 5 NONAME
|
||||
pjmedia_snd_open_player @ 6 NONAME
|
||||
pjmedia_snd_open_rec @ 7 NONAME
|
||||
pjmedia_snd_stream_close @ 8 NONAME
|
||||
pjmedia_snd_stream_get_info @ 9 NONAME
|
||||
pjmedia_snd_stream_start @ 10 NONAME
|
||||
pjmedia_snd_stream_stop @ 11 NONAME
|
|
@ -1,122 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
TARGET pjlib.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000001
|
||||
|
||||
CAPABILITY NONE
|
||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjlib.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjlib.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjlib\src\pj
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
//
|
||||
// Platform independent source
|
||||
//
|
||||
SOURCE activesock.c
|
||||
SOURCE array.c
|
||||
SOURCE config.c
|
||||
SOURCE ctype.c
|
||||
SOURCE errno.c
|
||||
SOURCE fifobuf.c
|
||||
SOURCE guid.c
|
||||
SOURCE hash.c
|
||||
SOURCE list.c
|
||||
SOURCE lock.c
|
||||
SOURCE string.c
|
||||
SOURCE log.c
|
||||
SOURCE os_info.c
|
||||
SOURCE os_info_symbian.cpp
|
||||
SOURCE os_time_common.c
|
||||
SOURCE pool.c
|
||||
SOURCE pool_buf.c
|
||||
SOURCE pool_caching.c
|
||||
SOURCE rand.c
|
||||
SOURCE rbtree.c
|
||||
SOURCE ssl_sock_common.c
|
||||
SOURCE ssl_sock_dump.c
|
||||
SOURCE sock_common.c
|
||||
SOURCE sock_qos_common.c
|
||||
SOURCE types.c
|
||||
|
||||
|
||||
//
|
||||
// Platform dependent source
|
||||
//
|
||||
SOURCE compat\string_compat.c
|
||||
SOURCE addr_resolv_symbian.cpp
|
||||
SOURCE exception_symbian.cpp
|
||||
SOURCE file_access_unistd.c
|
||||
SOURCE file_io_ansi.c
|
||||
SOURCE guid_simple.c
|
||||
SOURCE ioqueue_symbian.cpp
|
||||
SOURCE ip_helper_symbian.cpp
|
||||
SOURCE log_writer_symbian_console.cpp
|
||||
SOURCE os_core_symbian.cpp
|
||||
SOURCE os_error_symbian.cpp
|
||||
SOURCE os_timestamp_common.c
|
||||
SOURCE os_time_unix.c
|
||||
SOURCE os_timestamp_posix.c
|
||||
SOURCE pool_policy_new.cpp
|
||||
SOURCE ssl_sock_symbian.cpp
|
||||
SOURCE sock_symbian.cpp
|
||||
SOURCE sock_select_symbian.cpp
|
||||
SOURCE sock_qos_symbian.cpp
|
||||
SOURCE timer_symbian.cpp
|
||||
SOURCE unicode_symbian.cpp
|
||||
|
||||
//DOCUMENT os_symbian.h
|
||||
|
||||
//DOCUMENT pj\addr_resolv.h
|
||||
//DOCUMENT pj\array.h
|
||||
//DOCUMENT pj\assert.h
|
||||
//DOCUMENT pj\config.h
|
||||
//DOCUMENT pj\config_site.h
|
||||
//DOCUMENT pj\config_site_sample.h
|
||||
//DOCUMENT pj\ctype.h
|
||||
//DOCUMENT pj\errno.h
|
||||
//DOCUMENT pj\except.h
|
||||
//DOCUMENT pj\file_access.h
|
||||
//DOCUMENT pj\file_io.h
|
||||
//DOCUMENT pj\guid.h
|
||||
//DOCUMENT pj\hash.h
|
||||
//DOCUMENT pj\ioqueue.h
|
||||
//DOCUMENT pj\ip_helper.h
|
||||
//DOCUMENT pj\list.h
|
||||
//DOCUMENT pj\lock.h
|
||||
//DOCUMENT pj\log.h
|
||||
//DOCUMENT pj\os.h
|
||||
//DOCUMENT pj\\pool.h
|
||||
//DOCUMENT pj\\pool_buf.h
|
||||
//DOCUMENT pj\rand.h
|
||||
//DOCUMENT pj\rbtree.h
|
||||
//DOCUMENT pj\sock.h
|
||||
//DOCUMENT pj\sock_select.h
|
||||
//DOCUMENT pj\string.h
|
||||
//DOCUMENT pj\timer.h
|
||||
//DOCUMENT pj\types.h
|
||||
//DOCUMENT pj\unicode.h
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,326 +0,0 @@
|
|||
EXPORTS
|
||||
PJ_FD_CLR @ 1 NONAME
|
||||
PJ_FD_COUNT @ 2 NONAME
|
||||
PJ_FD_ISSET @ 3 NONAME
|
||||
PJ_FD_SET @ 4 NONAME
|
||||
PJ_FD_ZERO @ 5 NONAME
|
||||
PJ_GUID_STRING_LENGTH @ 6 NONAME
|
||||
PJ_NO_MEMORY_EXCEPTION @ 7 NONAME
|
||||
PJ_VERSION @ 8 NONAME
|
||||
pj_AF_INET @ 9 NONAME
|
||||
pj_AF_INET6 @ 10 NONAME
|
||||
pj_AF_IRDA @ 11 NONAME
|
||||
pj_AF_PACKET @ 12 NONAME
|
||||
pj_AF_UNIX @ 13 NONAME
|
||||
pj_AF_UNSPEC @ 14 NONAME
|
||||
pj_GUID_STRING_LENGTH @ 15 NONAME
|
||||
pj_IPTOS_LOWDELAY @ 16 NONAME
|
||||
pj_IPTOS_MINCOST @ 17 NONAME
|
||||
pj_IPTOS_RELIABILITY @ 18 NONAME
|
||||
pj_IPTOS_THROUGHPUT @ 19 NONAME
|
||||
pj_IP_TOS @ 20 NONAME
|
||||
pj_MSG_DONTROUTE @ 21 NONAME
|
||||
pj_MSG_OOB @ 22 NONAME
|
||||
pj_MSG_PEEK @ 23 NONAME
|
||||
pj_NO_MEMORY_EXCEPTION @ 24 NONAME
|
||||
pj_SOCK_DGRAM @ 25 NONAME
|
||||
pj_SOCK_RAW @ 26 NONAME
|
||||
pj_SOCK_RDM @ 27 NONAME
|
||||
pj_SOCK_STREAM @ 28 NONAME
|
||||
pj_SOL_IP @ 29 NONAME
|
||||
pj_SOL_IPV6 @ 30 NONAME
|
||||
pj_SOL_SOCKET @ 31 NONAME
|
||||
pj_SOL_TCP @ 32 NONAME
|
||||
pj_SOL_UDP @ 33 NONAME
|
||||
pj_SO_RCVBUF @ 34 NONAME
|
||||
pj_SO_SNDBUF @ 35 NONAME
|
||||
pj_SO_TYPE @ 36 NONAME
|
||||
pj_ansi_to_unicode @ 37 NONAME
|
||||
pj_array_erase @ 38 NONAME
|
||||
pj_array_find @ 39 NONAME
|
||||
pj_array_insert @ 40 NONAME
|
||||
pj_atexit @ 41 NONAME
|
||||
pj_atomic_add @ 42 NONAME
|
||||
pj_atomic_add_and_get @ 43 NONAME
|
||||
pj_atomic_create @ 44 NONAME
|
||||
pj_atomic_dec @ 45 NONAME
|
||||
pj_atomic_dec_and_get @ 46 NONAME
|
||||
pj_atomic_destroy @ 47 NONAME
|
||||
pj_atomic_get @ 48 NONAME
|
||||
pj_atomic_inc @ 49 NONAME
|
||||
pj_atomic_inc_and_get @ 50 NONAME
|
||||
pj_atomic_set @ 51 NONAME
|
||||
pj_caching_pool_destroy @ 52 NONAME
|
||||
pj_caching_pool_init @ 53 NONAME
|
||||
pj_create_random_string @ 54 NONAME
|
||||
pj_create_unique_string @ 55 NONAME
|
||||
pj_dump_config @ 56 NONAME
|
||||
pj_elapsed_cycle @ 57 NONAME
|
||||
pj_elapsed_msec @ 58 NONAME
|
||||
pj_elapsed_nanosec @ 59 NONAME
|
||||
pj_elapsed_time @ 60 NONAME
|
||||
pj_elapsed_usec @ 61 NONAME
|
||||
pj_enter_critical_section @ 62 NONAME
|
||||
pj_enum_ip_interface @ 63 NONAME
|
||||
pj_enum_ip_route @ 64 NONAME
|
||||
pj_exception_id_alloc @ 65 NONAME
|
||||
pj_exception_id_free @ 66 NONAME
|
||||
pj_exception_id_name @ 67 NONAME
|
||||
pj_fifobuf_alloc @ 68 NONAME
|
||||
pj_fifobuf_free @ 69 NONAME
|
||||
pj_fifobuf_init @ 70 NONAME
|
||||
pj_fifobuf_max_size @ 71 NONAME
|
||||
pj_fifobuf_unalloc @ 72 NONAME
|
||||
pj_file_close @ 73 NONAME
|
||||
pj_file_delete @ 74 NONAME
|
||||
pj_file_exists @ 75 NONAME
|
||||
pj_file_flush @ 76 NONAME
|
||||
pj_file_getpos @ 77 NONAME
|
||||
pj_file_getstat @ 78 NONAME
|
||||
pj_file_move @ 79 NONAME
|
||||
pj_file_open @ 80 NONAME
|
||||
pj_file_read @ 81 NONAME
|
||||
pj_file_setpos @ 82 NONAME
|
||||
pj_file_size @ 83 NONAME
|
||||
pj_file_write @ 84 NONAME
|
||||
pj_generate_unique_string @ 85 NONAME
|
||||
pj_get_netos_error @ 86 NONAME
|
||||
pj_get_os_error @ 87 NONAME
|
||||
pj_get_timestamp @ 88 NONAME
|
||||
pj_get_timestamp_freq @ 89 NONAME
|
||||
pj_get_version @ 90 NONAME
|
||||
pj_getaddrinfo @ 91 NONAME
|
||||
pj_getdefaultipinterface @ 92 NONAME
|
||||
pj_gethostaddr @ 93 NONAME
|
||||
pj_gethostbyname @ 94 NONAME
|
||||
pj_gethostip @ 95 NONAME
|
||||
pj_gethostname @ 96 NONAME
|
||||
pj_getpid @ 97 NONAME
|
||||
pj_gettimeofday @ 98 NONAME
|
||||
pj_hash_calc @ 99 NONAME
|
||||
pj_hash_calc_tolower @ 100 NONAME
|
||||
pj_hash_count @ 101 NONAME
|
||||
pj_hash_create @ 102 NONAME
|
||||
pj_hash_first @ 103 NONAME
|
||||
pj_hash_get @ 104 NONAME
|
||||
pj_hash_next @ 105 NONAME
|
||||
pj_hash_set @ 106 NONAME
|
||||
pj_hash_set_np @ 107 NONAME
|
||||
pj_hash_this @ 108 NONAME
|
||||
pj_htonl @ 109 NONAME
|
||||
pj_htons @ 110 NONAME
|
||||
pj_inet_addr @ 111 NONAME
|
||||
pj_inet_addr2 @ 112 NONAME
|
||||
pj_inet_aton @ 113 NONAME
|
||||
pj_inet_ntoa @ 114 NONAME
|
||||
pj_inet_ntop @ 115 NONAME
|
||||
pj_inet_ntop2 @ 116 NONAME
|
||||
pj_inet_pton @ 117 NONAME
|
||||
pj_init @ 118 NONAME
|
||||
pj_ioqueue_accept @ 119 NONAME
|
||||
pj_ioqueue_connect @ 120 NONAME
|
||||
pj_ioqueue_create @ 121 NONAME
|
||||
pj_ioqueue_destroy @ 122 NONAME
|
||||
pj_ioqueue_get_user_data @ 123 NONAME
|
||||
pj_ioqueue_is_pending @ 124 NONAME
|
||||
pj_ioqueue_name @ 125 NONAME
|
||||
pj_ioqueue_op_key_init @ 126 NONAME
|
||||
pj_ioqueue_poll @ 127 NONAME
|
||||
pj_ioqueue_post_completion @ 128 NONAME
|
||||
pj_ioqueue_recv @ 129 NONAME
|
||||
pj_ioqueue_recvfrom @ 130 NONAME
|
||||
pj_ioqueue_register_sock @ 131 NONAME
|
||||
pj_ioqueue_register_sock2 @ 132 NONAME
|
||||
pj_ioqueue_send @ 133 NONAME
|
||||
pj_ioqueue_sendto @ 134 NONAME
|
||||
pj_ioqueue_set_lock @ 135 NONAME
|
||||
pj_ioqueue_set_user_data @ 136 NONAME
|
||||
pj_ioqueue_unregister @ 137 NONAME
|
||||
pj_leave_critical_section @ 138 NONAME
|
||||
pj_list_erase @ 139 NONAME
|
||||
pj_list_find_node @ 140 NONAME
|
||||
pj_list_insert_after @ 141 NONAME
|
||||
pj_list_insert_before @ 142 NONAME
|
||||
pj_list_insert_nodes_after @ 143 NONAME
|
||||
pj_list_insert_nodes_before @ 144 NONAME
|
||||
pj_list_merge_first @ 145 NONAME
|
||||
pj_list_merge_last @ 146 NONAME
|
||||
pj_list_search @ 147 NONAME
|
||||
pj_list_size @ 148 NONAME
|
||||
pj_lock_acquire @ 149 NONAME
|
||||
pj_lock_create_null_mutex @ 150 NONAME
|
||||
pj_lock_create_recursive_mutex @ 151 NONAME
|
||||
pj_lock_create_semaphore @ 152 NONAME
|
||||
pj_lock_create_simple_mutex @ 153 NONAME
|
||||
pj_lock_destroy @ 154 NONAME
|
||||
pj_lock_release @ 155 NONAME
|
||||
pj_lock_tryacquire @ 156 NONAME
|
||||
pj_log @ 157 NONAME
|
||||
pj_log_1 @ 158 NONAME
|
||||
pj_log_2 @ 159 NONAME
|
||||
pj_log_3 @ 160 NONAME
|
||||
pj_log_4 @ 161 NONAME
|
||||
pj_log_5 @ 162 NONAME
|
||||
pj_log_get_decor @ 163 NONAME
|
||||
pj_log_get_level @ 164 NONAME
|
||||
pj_log_get_log_func @ 165 NONAME
|
||||
pj_log_set_decor @ 166 NONAME
|
||||
pj_log_set_level @ 167 NONAME
|
||||
pj_log_set_log_func @ 168 NONAME
|
||||
pj_log_write @ 169 NONAME
|
||||
pj_mutex_create @ 170 NONAME
|
||||
pj_mutex_create_recursive @ 171 NONAME
|
||||
pj_mutex_create_simple @ 172 NONAME
|
||||
pj_mutex_destroy @ 173 NONAME
|
||||
pj_mutex_lock @ 174 NONAME
|
||||
pj_mutex_trylock @ 175 NONAME
|
||||
pj_mutex_unlock @ 176 NONAME
|
||||
pj_ntohl @ 177 NONAME
|
||||
pj_ntohs @ 178 NONAME
|
||||
pj_pool_alloc @ 179 NONAME
|
||||
pj_pool_alloc_from_block @ 180 NONAME
|
||||
pj_pool_allocate_find @ 181 NONAME
|
||||
pj_pool_calloc @ 182 NONAME
|
||||
pj_pool_create @ 183 NONAME
|
||||
pj_pool_create_int @ 184 NONAME
|
||||
pj_pool_create_on_buf @ 185 NONAME
|
||||
pj_pool_destroy_int @ 186 NONAME
|
||||
pj_pool_factory_default_policy @ 187 NONAME
|
||||
pj_pool_factory_get_default_policy @ 188 NONAME
|
||||
pj_pool_get_capacity @ 189 NONAME
|
||||
pj_pool_get_used_size @ 190 NONAME
|
||||
pj_pool_getobjname @ 191 NONAME
|
||||
pj_pool_init_int @ 192 NONAME
|
||||
pj_pool_release @ 193 NONAME
|
||||
pj_pool_reset @ 194 NONAME
|
||||
pj_rand @ 195 NONAME
|
||||
pj_rbtree_erase @ 196 NONAME
|
||||
pj_rbtree_find @ 197 NONAME
|
||||
pj_rbtree_first @ 198 NONAME
|
||||
pj_rbtree_init @ 199 NONAME
|
||||
pj_rbtree_insert @ 200 NONAME
|
||||
pj_rbtree_last @ 201 NONAME
|
||||
pj_rbtree_max_height @ 202 NONAME
|
||||
pj_rbtree_min_height @ 203 NONAME
|
||||
pj_rbtree_next @ 204 NONAME
|
||||
pj_rbtree_prev @ 205 NONAME
|
||||
pj_register_strerror @ 206 NONAME
|
||||
pj_rwmutex_create @ 207 NONAME
|
||||
pj_rwmutex_destroy @ 208 NONAME
|
||||
pj_rwmutex_lock_read @ 209 NONAME
|
||||
pj_rwmutex_lock_write @ 210 NONAME
|
||||
pj_rwmutex_unlock_read @ 211 NONAME
|
||||
pj_rwmutex_unlock_write @ 212 NONAME
|
||||
pj_sem_create @ 213 NONAME
|
||||
pj_sem_destroy @ 214 NONAME
|
||||
pj_sem_post @ 215 NONAME
|
||||
pj_sem_trywait @ 216 NONAME
|
||||
pj_sem_wait @ 217 NONAME
|
||||
pj_set_netos_error @ 218 NONAME
|
||||
pj_set_os_error @ 219 NONAME
|
||||
pj_shutdown @ 220 NONAME
|
||||
pj_sock_accept @ 221 NONAME
|
||||
pj_sock_bind @ 222 NONAME
|
||||
pj_sock_bind_in @ 223 NONAME
|
||||
pj_sock_close @ 224 NONAME
|
||||
pj_sock_connect @ 225 NONAME
|
||||
pj_sock_getpeername @ 226 NONAME
|
||||
pj_sock_getsockname @ 227 NONAME
|
||||
pj_sock_getsockopt @ 228 NONAME
|
||||
pj_sock_listen @ 229 NONAME
|
||||
pj_sock_recv @ 230 NONAME
|
||||
pj_sock_recvfrom @ 231 NONAME
|
||||
pj_sock_select @ 232 NONAME
|
||||
pj_sock_send @ 233 NONAME
|
||||
pj_sock_sendto @ 234 NONAME
|
||||
pj_sock_setsockopt @ 235 NONAME
|
||||
pj_sock_shutdown @ 236 NONAME
|
||||
pj_sock_socket @ 237 NONAME
|
||||
pj_sockaddr_cmp @ 238 NONAME
|
||||
pj_sockaddr_copy_addr @ 239 NONAME
|
||||
pj_sockaddr_get_addr @ 240 NONAME
|
||||
pj_sockaddr_get_addr_len @ 241 NONAME
|
||||
pj_sockaddr_get_len @ 242 NONAME
|
||||
pj_sockaddr_get_port @ 243 NONAME
|
||||
pj_sockaddr_has_addr @ 244 NONAME
|
||||
pj_sockaddr_in_get_addr @ 245 NONAME
|
||||
pj_sockaddr_in_get_port @ 246 NONAME
|
||||
pj_sockaddr_in_init @ 247 NONAME
|
||||
pj_sockaddr_in_set_addr @ 248 NONAME
|
||||
pj_sockaddr_in_set_port @ 249 NONAME
|
||||
pj_sockaddr_in_set_str_addr @ 250 NONAME
|
||||
pj_sockaddr_init @ 251 NONAME
|
||||
pj_sockaddr_print @ 252 NONAME
|
||||
pj_sockaddr_set_port @ 253 NONAME
|
||||
pj_sockaddr_set_str_addr @ 254 NONAME
|
||||
pj_srand @ 255 NONAME
|
||||
pj_str @ 256 NONAME
|
||||
pj_strassign @ 257 NONAME
|
||||
pj_strcat @ 258 NONAME
|
||||
pj_strcat2 @ 259 NONAME
|
||||
pj_strcmp @ 260 NONAME
|
||||
pj_strcmp2 @ 261 NONAME
|
||||
pj_strcpy @ 262 NONAME
|
||||
pj_strcpy2 @ 263 NONAME
|
||||
pj_strdup @ 264 NONAME
|
||||
pj_strdup2 @ 265 NONAME
|
||||
pj_strdup2_with_null @ 266 NONAME
|
||||
pj_strdup3 @ 267 NONAME
|
||||
pj_strdup_with_null @ 268 NONAME
|
||||
pj_strerror @ 269 NONAME
|
||||
pj_stricmp @ 270 NONAME
|
||||
pj_stricmp2 @ 271 NONAME
|
||||
pj_strltrim @ 272 NONAME
|
||||
pj_strncmp @ 273 NONAME
|
||||
pj_strncmp2 @ 274 NONAME
|
||||
pj_strncpy @ 275 NONAME
|
||||
pj_strncpy_with_null @ 276 NONAME
|
||||
pj_strnicmp @ 277 NONAME
|
||||
pj_strnicmp2 @ 278 NONAME
|
||||
pj_strrtrim @ 279 NONAME
|
||||
pj_strtoul @ 280 NONAME
|
||||
pj_strtoul2 @ 281 NONAME
|
||||
pj_strtrim @ 282 NONAME
|
||||
pj_symbianos_poll @ 283 NONAME
|
||||
pj_symbianos_set_params @ 284 NONAME
|
||||
pj_thread_check_stack @ 285 NONAME
|
||||
pj_thread_create @ 286 NONAME
|
||||
pj_thread_destroy @ 287 NONAME
|
||||
pj_thread_get_name @ 288 NONAME
|
||||
pj_thread_get_os_handle @ 289 NONAME
|
||||
pj_thread_get_stack_info @ 290 NONAME
|
||||
pj_thread_get_stack_max_usage @ 291 NONAME
|
||||
pj_thread_is_registered @ 292 NONAME
|
||||
pj_thread_join @ 293 NONAME
|
||||
pj_thread_local_alloc @ 294 NONAME
|
||||
pj_thread_local_free @ 295 NONAME
|
||||
pj_thread_local_get @ 296 NONAME
|
||||
pj_thread_local_set @ 297 NONAME
|
||||
pj_thread_register @ 298 NONAME
|
||||
pj_thread_resume @ 299 NONAME
|
||||
pj_thread_sleep @ 300 NONAME
|
||||
pj_thread_this @ 301 NONAME
|
||||
pj_time_decode @ 302 NONAME
|
||||
pj_time_encode @ 303 NONAME
|
||||
pj_time_gmt_to_local @ 304 NONAME
|
||||
pj_time_local_to_gmt @ 305 NONAME
|
||||
pj_time_val_normalize @ 306 NONAME
|
||||
pj_timer_entry_init @ 307 NONAME
|
||||
pj_timer_heap_cancel @ 308 NONAME
|
||||
pj_timer_heap_cancel_if_active @ 309 NONAME
|
||||
pj_timer_heap_count @ 310 NONAME
|
||||
pj_timer_heap_create @ 311 NONAME
|
||||
pj_timer_heap_destroy @ 312 NONAME
|
||||
pj_timer_heap_earliest_time @ 313 NONAME
|
||||
pj_timer_heap_mem_size @ 314 NONAME
|
||||
pj_timer_heap_poll @ 315 NONAME
|
||||
pj_timer_heap_schedule @ 316 NONAME
|
||||
pj_timer_heap_schedule_w_grp_lock @ 317 NONAME
|
||||
pj_timer_heap_set_lock @ 318 NONAME
|
||||
pj_timer_heap_set_max_timed_out_per_poll @ 319 NONAME
|
||||
pj_unicode_to_ansi @ 320 NONAME
|
||||
pj_utoa @ 321 NONAME
|
||||
pj_utoa_pad @ 322 NONAME
|
||||
platform_strerror @ 323 NONAME
|
||||
snprintf @ 324 NONAME
|
||||
vsnprintf @ 325 NONAME
|
|
@ -1,83 +0,0 @@
|
|||
TARGET pjlib_test.exe
|
||||
TARGETTYPE exe
|
||||
UID 0x0 0xA0000002
|
||||
|
||||
|
||||
SOURCEPATH ..\pjlib\src\pjlib-test
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
#if defined(PJ_BUILD_DLL)
|
||||
MACRO PJ_DLL
|
||||
LIBRARY pjlib.lib
|
||||
#else
|
||||
STATICLIBRARY pjlib.lib
|
||||
#endif
|
||||
|
||||
// Test files
|
||||
|
||||
SOURCE activesock.c
|
||||
SOURCE atomic.c
|
||||
SOURCE echo_clt.c
|
||||
SOURCE errno.c
|
||||
SOURCE exception_wrap.cpp
|
||||
SOURCE fifobuf.c
|
||||
SOURCE file.c
|
||||
SOURCE hash_test.c
|
||||
SOURCE ioq_perf.c
|
||||
SOURCE ioq_tcp.c
|
||||
SOURCE ioq_udp.c
|
||||
SOURCE ioq_unreg.c
|
||||
SOURCE list.c
|
||||
SOURCE mutex.c
|
||||
SOURCE os.c
|
||||
SOURCE pool_wrap.cpp
|
||||
SOURCE pool_perf.c
|
||||
SOURCE rand.c
|
||||
SOURCE rbtree.c
|
||||
SOURCE select.c
|
||||
SOURCE sleep.c
|
||||
SOURCE sock.c
|
||||
SOURCE sock_perf.c
|
||||
SOURCE ssl_sock.c
|
||||
SOURCE string.c
|
||||
SOURCE test_wrap.cpp
|
||||
SOURCE thread.c
|
||||
SOURCE timer.c
|
||||
SOURCE timestamp.c
|
||||
SOURCE udp_echo_srv_ioqueue.c
|
||||
SOURCE udp_echo_srv_sync.c
|
||||
SOURCE util.c
|
||||
|
||||
SOURCE main_symbian.cpp
|
||||
|
||||
DOCUMENT test.h
|
||||
|
||||
START RESOURCE pjlib_test_reg.rss
|
||||
TARGETPATH \private\10003a3f\apps
|
||||
END
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
LIBRARY securesocket.lib x509.lib crypto.lib x500.lib
|
||||
LIBRARY hal.lib efsrv.lib
|
||||
|
||||
#ifdef WINSCW
|
||||
STATICLIBRARY eexe.lib ecrt0.lib
|
||||
#endif
|
||||
|
||||
// Need a bit of mem for logging in the app.
|
||||
EPOCSTACKSIZE 32768
|
||||
|
||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
|
|
@ -1,19 +0,0 @@
|
|||
; pjlib_test.pkg
|
||||
|
||||
; Languages
|
||||
&EN
|
||||
|
||||
; Header
|
||||
;#{"pjlib_test"},(0x200235D3), 0, 1, 1
|
||||
#{"pjlib_test"},(0xA0000002), 0, 1, 1
|
||||
|
||||
; Platform compatibility
|
||||
[0x101F7961], *, *, *,{"Series60ProductID"}
|
||||
|
||||
; vendor
|
||||
%{"PJSIP"}
|
||||
:"PJSIP"
|
||||
|
||||
; Target
|
||||
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\pjlib_test.exe"-"!:\sys\bin\pjlib_test.exe"
|
||||
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\pjlib_test_reg.rSC"-"!:\private\10003a3f\import\apps\pjlib_test_reg.rSC"
|
|
@ -1,86 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
TARGET pjlib_util.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000003
|
||||
|
||||
CAPABILITY NONE
|
||||
LIBRARY pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjlib_util.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjlib_util.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjlib-util\src\pjlib-util
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
//
|
||||
// PJLIB-UTIL files
|
||||
//
|
||||
SOURCE base64.c
|
||||
SOURCE cli.c
|
||||
SOURCE cli_console.c
|
||||
SOURCE cli_telnet.c
|
||||
SOURCE crc32.c
|
||||
SOURCE dns.c
|
||||
SOURCE dns_dump.c
|
||||
SOURCE dns_server.c
|
||||
SOURCE errno.c
|
||||
SOURCE getopt.c
|
||||
SOURCE hmac_md5.c
|
||||
SOURCE hmac_sha1.c
|
||||
SOURCE http_client.c
|
||||
SOURCE md5.c
|
||||
SOURCE pcap.c
|
||||
SOURCE resolver_wrap.cpp
|
||||
SOURCE scanner.c
|
||||
SOURCE sha1.c
|
||||
SOURCE srv_resolver.c
|
||||
SOURCE string.c
|
||||
SOURCE stun_simple.c
|
||||
SOURCE stun_simple_client.c
|
||||
SOURCE xml_wrap.cpp
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
//DOCUMENT pjlib-util\\config.h
|
||||
//DOCUMENT pjlib-util\\crc32.h
|
||||
//DOCUMENT pjlib-util\\dns.h
|
||||
//DOCUMENT pjlib-util\\errno.h
|
||||
//DOCUMENT pjlib-util\\getopt.h
|
||||
//DOCUMENT pjlib-util\\hmac_md5.h
|
||||
//DOCUMENT pjlib-util\hmac_sha1.h
|
||||
//DOCUMENT pjlib-util\http_client.h
|
||||
//DOCUMENT pjlib-util\md5.h
|
||||
//DOCUMENT pjlib-util\resolver.h
|
||||
//DOCUMENT pjlib-util\scanner.h
|
||||
//DOCUMENT pjlib-util\sha1.h
|
||||
//DOCUMENT pjlib-util\srv_resolver.h
|
||||
//DOCUMENT pjlib-util\string.h
|
||||
//DOCUMENT pjlib-util\stun_simple.h
|
||||
//DOCUMENT pjlib-util\types.h
|
||||
//DOCUMENT pjlib-util\xml.h
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
EXPORTS
|
||||
pj_cis_add_alpha @ 1 NONAME
|
||||
pj_cis_add_cis @ 2 NONAME
|
||||
pj_cis_add_num @ 3 NONAME
|
||||
pj_cis_add_range @ 4 NONAME
|
||||
pj_cis_add_str @ 5 NONAME
|
||||
pj_cis_buf_init @ 6 NONAME
|
||||
pj_cis_del_range @ 7 NONAME
|
||||
pj_cis_del_str @ 8 NONAME
|
||||
pj_cis_dup @ 9 NONAME
|
||||
pj_cis_init @ 10 NONAME
|
||||
pj_cis_invert @ 11 NONAME
|
||||
pj_crc32_calc @ 12 NONAME
|
||||
pj_crc32_final @ 13 NONAME
|
||||
pj_crc32_init @ 14 NONAME
|
||||
pj_crc32_update @ 15 NONAME
|
||||
pj_dns_dump_packet @ 16 NONAME
|
||||
pj_dns_get_type_name @ 17 NONAME
|
||||
pj_dns_make_query @ 18 NONAME
|
||||
pj_dns_packet_dup @ 19 NONAME
|
||||
pj_dns_parse_a_response @ 20 NONAME
|
||||
pj_dns_parse_packet @ 21 NONAME
|
||||
pj_dns_resolver_add_entry @ 22 NONAME
|
||||
pj_dns_resolver_cancel_query @ 23 NONAME
|
||||
pj_dns_resolver_create @ 24 NONAME
|
||||
pj_dns_resolver_destroy @ 25 NONAME
|
||||
pj_dns_resolver_dump @ 26 NONAME
|
||||
pj_dns_resolver_get_cached_count @ 27 NONAME
|
||||
pj_dns_resolver_get_settings @ 28 NONAME
|
||||
pj_dns_resolver_handle_events @ 29 NONAME
|
||||
pj_dns_resolver_set_ns @ 30 NONAME
|
||||
pj_dns_resolver_set_settings @ 31 NONAME
|
||||
pj_dns_resolver_start_query @ 32 NONAME
|
||||
pj_dns_settings_default @ 33 NONAME
|
||||
pj_dns_srv_resolve @ 34 NONAME
|
||||
pj_hmac_md5 @ 35 NONAME
|
||||
pj_hmac_md5_final @ 36 NONAME
|
||||
pj_hmac_md5_init @ 37 NONAME
|
||||
pj_hmac_md5_update @ 38 NONAME
|
||||
pj_hmac_sha1 @ 39 NONAME
|
||||
pj_hmac_sha1_final @ 40 NONAME
|
||||
pj_hmac_sha1_init @ 41 NONAME
|
||||
pj_hmac_sha1_update @ 42 NONAME
|
||||
pj_md5_final @ 43 NONAME
|
||||
pj_md5_init @ 44 NONAME
|
||||
pj_md5_update @ 45 NONAME
|
||||
pj_scan_advance_n @ 46 NONAME
|
||||
pj_scan_fini @ 47 NONAME
|
||||
pj_scan_get @ 48 NONAME
|
||||
pj_scan_get_char @ 49 NONAME
|
||||
pj_scan_get_n @ 50 NONAME
|
||||
pj_scan_get_newline @ 51 NONAME
|
||||
pj_scan_get_quote @ 52 NONAME
|
||||
pj_scan_get_quotes @ 53 NONAME
|
||||
pj_scan_get_unescape @ 54 NONAME
|
||||
pj_scan_get_until @ 55 NONAME
|
||||
pj_scan_get_until_ch @ 56 NONAME
|
||||
pj_scan_get_until_chr @ 57 NONAME
|
||||
pj_scan_init @ 58 NONAME
|
||||
pj_scan_peek @ 59 NONAME
|
||||
pj_scan_peek_n @ 60 NONAME
|
||||
pj_scan_peek_until @ 61 NONAME
|
||||
pj_scan_restore_state @ 62 NONAME
|
||||
pj_scan_save_state @ 63 NONAME
|
||||
pj_scan_skip_line @ 64 NONAME
|
||||
pj_scan_skip_whitespace @ 65 NONAME
|
||||
pj_scan_strcmp @ 66 NONAME
|
||||
pj_scan_stricmp @ 67 NONAME
|
||||
pj_scan_stricmp_alnum @ 68 NONAME
|
||||
pj_sha1_final @ 69 NONAME
|
||||
pj_sha1_init @ 70 NONAME
|
||||
pj_sha1_update @ 71 NONAME
|
||||
pj_str_unescape @ 72 NONAME
|
||||
pj_strcpy_unescape @ 73 NONAME
|
||||
pj_strncpy2_escape @ 74 NONAME
|
||||
pj_strncpy_escape @ 75 NONAME
|
||||
pj_xml_add_attr @ 76 NONAME
|
||||
pj_xml_add_node @ 77 NONAME
|
||||
pj_xml_attr_new @ 78 NONAME
|
||||
pj_xml_clone @ 79 NONAME
|
||||
pj_xml_find @ 80 NONAME
|
||||
pj_xml_find_attr @ 81 NONAME
|
||||
pj_xml_find_next_node @ 82 NONAME
|
||||
pj_xml_find_node @ 83 NONAME
|
||||
pj_xml_node_new @ 84 NONAME
|
||||
pj_xml_parse @ 85 NONAME
|
||||
pj_xml_print @ 86 NONAME
|
||||
pjlib_util_init @ 87 NONAME
|
||||
pjstun_create_bind_req @ 88 NONAME
|
||||
pjstun_get_mapped_addr @ 89 NONAME
|
||||
pjstun_msg_find_attr @ 90 NONAME
|
||||
pjstun_parse_msg @ 91 NONAME
|
|
@ -1,136 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET pjmedia.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000004
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjmedia.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjmedia.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
//
|
||||
// Platform independent source
|
||||
//
|
||||
|
||||
SOURCE alaw_ulaw.c
|
||||
SOURCE alaw_ulaw_table.c
|
||||
SOURCE avi_player.c
|
||||
SOURCE bidirectional.c
|
||||
SOURCE clock_thread.c
|
||||
SOURCE codec.c
|
||||
SOURCE conf_switch.c
|
||||
SOURCE conference.c
|
||||
SOURCE converter.c
|
||||
SOURCE converter_libswscale.c
|
||||
SOURCE delaybuf.c
|
||||
SOURCE echo_common.c
|
||||
SOURCE echo_port.c
|
||||
SOURCE echo_suppress.c
|
||||
SOURCE endpoint.c
|
||||
SOURCE errno.c
|
||||
SOURCE event.c
|
||||
SOURCE format.c
|
||||
SOURCE g711.c
|
||||
SOURCE jbuf.c
|
||||
SOURCE master_port.c
|
||||
SOURCE mem_capture.c
|
||||
SOURCE mem_player.c
|
||||
SOURCE null_port.c
|
||||
SOURCE plc_common.c
|
||||
SOURCE port.c
|
||||
SOURCE resample_port.c
|
||||
SOURCE resample_resample.c
|
||||
SOURCE rtcp.c
|
||||
SOURCE rtcp_xr.c
|
||||
SOURCE rtp.c
|
||||
//SDP files are in pjsdp.mmp: sdp.c, sdp_cmp.c, sdp_neg.c
|
||||
//SOURCE session.c // deprecated
|
||||
SOURCE silencedet.c
|
||||
SOURCE sound_port.c
|
||||
SOURCE splitcomb.c
|
||||
SOURCE stereo_port.c
|
||||
SOURCE stream.c
|
||||
SOURCE stream_common.c
|
||||
SOURCE stream_info.c
|
||||
SOURCE tonegen.c
|
||||
SOURCE transport_adapter_sample.c
|
||||
SOURCE transport_ice.c
|
||||
SOURCE transport_udp.c
|
||||
SOURCE transport_srtp.c
|
||||
SOURCE types.c
|
||||
SOURCE vid_codec.c
|
||||
SOURCE vid_codec_util.c
|
||||
SOURCE vid_port.c
|
||||
SOURCE vid_stream.c
|
||||
SOURCE vid_stream_info.c
|
||||
SOURCE vid_tee.c
|
||||
SOURCE wav_player.c
|
||||
SOURCE wav_playlist.c
|
||||
SOURCE wav_writer.c
|
||||
SOURCE wave.c
|
||||
SOURCE wsola.c
|
||||
|
||||
//
|
||||
// pjmedia-codec common files
|
||||
//
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
||||
SOURCE audio_codecs.c
|
||||
SOURCE amr_sdp_match.c
|
||||
SOURCE g7221_sdp_match.c
|
||||
SOURCE h263_packetizer.c
|
||||
SOURCE h264_packetizer.c
|
||||
|
||||
|
||||
//
|
||||
// Symbian specific
|
||||
// These are on separate project
|
||||
//
|
||||
//SOURCE symbian_sound.cpp
|
||||
//SOURCE null_sound.c
|
||||
|
||||
|
||||
//
|
||||
// Header files
|
||||
//
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjnath\include
|
||||
SYSTEMINCLUDE ..\third_party\srtp\include
|
||||
SYSTEMINCLUDE ..\third_party\srtp\crypto\include
|
||||
SYSTEMINCLUDE ..\third_party\build\srtp
|
||||
SYSTEMINCLUDE ..
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
//SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
||||
|
||||
|
|
@ -1,193 +0,0 @@
|
|||
EXPORTS
|
||||
echo_supp_cancel_echo @ 1 NONAME
|
||||
echo_supp_capture @ 2 NONAME
|
||||
echo_supp_create @ 3 NONAME
|
||||
echo_supp_destroy @ 4 NONAME
|
||||
echo_supp_playback @ 5 NONAME
|
||||
pjmedia_bidirectional_port_create @ 6 NONAME
|
||||
pjmedia_calc_avg_signal @ 7 NONAME
|
||||
pjmedia_clock_create @ 8 NONAME
|
||||
pjmedia_clock_destroy @ 9 NONAME
|
||||
pjmedia_clock_start @ 10 NONAME
|
||||
pjmedia_clock_stop @ 11 NONAME
|
||||
pjmedia_clock_wait @ 12 NONAME
|
||||
pjmedia_codec_g711_deinit @ 13 NONAME
|
||||
pjmedia_codec_g711_init @ 14 NONAME
|
||||
pjmedia_codec_info_to_id @ 15 NONAME
|
||||
pjmedia_codec_mgr_alloc_codec @ 16 NONAME
|
||||
pjmedia_codec_mgr_dealloc_codec @ 17 NONAME
|
||||
pjmedia_codec_mgr_enum_codecs @ 18 NONAME
|
||||
pjmedia_codec_mgr_find_codecs_by_id @ 19 NONAME
|
||||
pjmedia_codec_mgr_get_codec_info @ 20 NONAME
|
||||
pjmedia_codec_mgr_get_default_param @ 21 NONAME
|
||||
pjmedia_codec_mgr_init @ 22 NONAME
|
||||
pjmedia_codec_mgr_register_factory @ 23 NONAME
|
||||
pjmedia_codec_mgr_set_codec_priority @ 24 NONAME
|
||||
pjmedia_codec_mgr_unregister_factory @ 25 NONAME
|
||||
pjmedia_conf_add_passive_port @ 26 NONAME
|
||||
pjmedia_conf_add_port @ 27 NONAME
|
||||
pjmedia_conf_adjust_rx_level @ 28 NONAME
|
||||
pjmedia_conf_adjust_tx_level @ 29 NONAME
|
||||
pjmedia_conf_configure_port @ 30 NONAME
|
||||
pjmedia_conf_connect_port @ 31 NONAME
|
||||
pjmedia_conf_create @ 32 NONAME
|
||||
pjmedia_conf_destroy @ 33 NONAME
|
||||
pjmedia_conf_disconnect_port @ 34 NONAME
|
||||
pjmedia_conf_enum_ports @ 35 NONAME
|
||||
pjmedia_conf_get_connect_count @ 36 NONAME
|
||||
pjmedia_conf_get_master_port @ 37 NONAME
|
||||
pjmedia_conf_get_port_count @ 38 NONAME
|
||||
pjmedia_conf_get_port_info @ 39 NONAME
|
||||
pjmedia_conf_get_ports_info @ 40 NONAME
|
||||
pjmedia_conf_get_signal_level @ 41 NONAME
|
||||
pjmedia_conf_remove_port @ 42 NONAME
|
||||
pjmedia_conf_set_port0_name @ 43 NONAME
|
||||
pjmedia_delay_buf_create @ 44 NONAME
|
||||
pjmedia_delay_buf_get @ 45 NONAME
|
||||
pjmedia_delay_buf_put @ 46 NONAME
|
||||
pjmedia_echo_cancel @ 47 NONAME
|
||||
pjmedia_echo_capture @ 48 NONAME
|
||||
pjmedia_echo_create @ 49 NONAME
|
||||
pjmedia_echo_destroy @ 50 NONAME
|
||||
pjmedia_echo_playback @ 51 NONAME
|
||||
pjmedia_echo_port_create @ 52 NONAME
|
||||
pjmedia_endpt_create @ 53 NONAME
|
||||
pjmedia_endpt_create_pool @ 54 NONAME
|
||||
pjmedia_endpt_create_sdp @ 55 NONAME
|
||||
pjmedia_endpt_destroy @ 56 NONAME
|
||||
pjmedia_endpt_dump @ 57 NONAME
|
||||
pjmedia_endpt_get_codec_mgr @ 58 NONAME
|
||||
pjmedia_endpt_get_ioqueue @ 59 NONAME
|
||||
pjmedia_endpt_get_thread @ 60 NONAME
|
||||
pjmedia_endpt_get_thread_count @ 61 NONAME
|
||||
pjmedia_ice_create @ 62 NONAME
|
||||
pjmedia_ice_destroy @ 63 NONAME
|
||||
pjmedia_ice_get_comp @ 64 NONAME
|
||||
pjmedia_ice_get_init_status @ 65 NONAME
|
||||
pjmedia_ice_init_ice @ 66 NONAME
|
||||
pjmedia_ice_modify_sdp @ 67 NONAME
|
||||
pjmedia_ice_simulate_lost @ 68 NONAME
|
||||
pjmedia_ice_start_ice @ 69 NONAME
|
||||
pjmedia_ice_start_init @ 70 NONAME
|
||||
pjmedia_ice_stop_ice @ 71 NONAME
|
||||
pjmedia_jbuf_create @ 72 NONAME
|
||||
pjmedia_jbuf_destroy @ 73 NONAME
|
||||
pjmedia_jbuf_get_frame @ 74 NONAME
|
||||
pjmedia_jbuf_get_state @ 75 NONAME
|
||||
pjmedia_jbuf_put_frame @ 76 NONAME
|
||||
pjmedia_jbuf_reset @ 77 NONAME
|
||||
pjmedia_jbuf_set_adaptive @ 78 NONAME
|
||||
pjmedia_jbuf_set_fixed @ 79 NONAME
|
||||
pjmedia_master_port_create @ 80 NONAME
|
||||
pjmedia_master_port_destroy @ 81 NONAME
|
||||
pjmedia_master_port_get_dport @ 82 NONAME
|
||||
pjmedia_master_port_get_uport @ 83 NONAME
|
||||
pjmedia_master_port_set_dport @ 84 NONAME
|
||||
pjmedia_master_port_set_uport @ 85 NONAME
|
||||
pjmedia_master_port_start @ 86 NONAME
|
||||
pjmedia_master_port_stop @ 87 NONAME
|
||||
pjmedia_mem_capture_create @ 88 NONAME
|
||||
pjmedia_mem_capture_get_size @ 89 NONAME
|
||||
pjmedia_mem_capture_set_eof_cb @ 90 NONAME
|
||||
pjmedia_mem_player_create @ 91 NONAME
|
||||
pjmedia_mem_player_set_eof_cb @ 92 NONAME
|
||||
pjmedia_null_port_create @ 93 NONAME
|
||||
pjmedia_plc_create @ 94 NONAME
|
||||
pjmedia_plc_generate @ 95 NONAME
|
||||
pjmedia_plc_save @ 96 NONAME
|
||||
pjmedia_port_destroy @ 97 NONAME
|
||||
pjmedia_port_get_frame @ 98 NONAME
|
||||
pjmedia_port_info_init @ 99 NONAME
|
||||
pjmedia_port_put_frame @ 100 NONAME
|
||||
pjmedia_resample_create @ 101 NONAME
|
||||
pjmedia_resample_destroy @ 102 NONAME
|
||||
pjmedia_resample_get_input_size @ 103 NONAME
|
||||
pjmedia_resample_port_create @ 104 NONAME
|
||||
pjmedia_resample_run @ 105 NONAME
|
||||
pjmedia_rtcp_build_rtcp @ 106 NONAME
|
||||
pjmedia_rtcp_fini @ 107 NONAME
|
||||
pjmedia_rtcp_get_ntp_time @ 108 NONAME
|
||||
pjmedia_rtcp_init @ 109 NONAME
|
||||
pjmedia_rtcp_rx_rtcp @ 110 NONAME
|
||||
pjmedia_rtcp_rx_rtp @ 111 NONAME
|
||||
pjmedia_rtcp_tx_rtp @ 112 NONAME
|
||||
pjmedia_rtp_decode_rtp @ 113 NONAME
|
||||
pjmedia_rtp_encode_rtp @ 114 NONAME
|
||||
pjmedia_rtp_session_init @ 115 NONAME
|
||||
pjmedia_rtp_session_update @ 116 NONAME
|
||||
pjmedia_session_check_dtmf @ 117 NONAME
|
||||
pjmedia_session_create @ 118 NONAME
|
||||
pjmedia_session_destroy @ 119 NONAME
|
||||
pjmedia_session_dial_dtmf @ 120 NONAME
|
||||
pjmedia_session_enum_streams @ 121 NONAME
|
||||
pjmedia_session_get_dtmf @ 122 NONAME
|
||||
pjmedia_session_get_info @ 123 NONAME
|
||||
pjmedia_session_get_port @ 124 NONAME
|
||||
pjmedia_session_get_stream_stat @ 125 NONAME
|
||||
pjmedia_session_info_from_sdp @ 126 NONAME
|
||||
pjmedia_session_pause @ 127 NONAME
|
||||
pjmedia_session_pause_stream @ 128 NONAME
|
||||
pjmedia_session_resume @ 129 NONAME
|
||||
pjmedia_session_resume_stream @ 130 NONAME
|
||||
pjmedia_session_set_dtmf_callback @ 131 NONAME
|
||||
pjmedia_silence_det_apply @ 132 NONAME
|
||||
pjmedia_silence_det_create @ 133 NONAME
|
||||
pjmedia_silence_det_detect @ 134 NONAME
|
||||
pjmedia_silence_det_disable @ 135 NONAME
|
||||
pjmedia_silence_det_set_adaptive @ 136 NONAME
|
||||
pjmedia_silence_det_set_fixed @ 137 NONAME
|
||||
pjmedia_silence_det_set_name @ 138 NONAME
|
||||
pjmedia_silence_det_set_params @ 139 NONAME
|
||||
pjmedia_snd_port_connect @ 140 NONAME
|
||||
pjmedia_snd_port_create @ 141 NONAME
|
||||
pjmedia_snd_port_create_player @ 142 NONAME
|
||||
pjmedia_snd_port_create_rec @ 143 NONAME
|
||||
pjmedia_snd_port_destroy @ 144 NONAME
|
||||
pjmedia_snd_port_disconnect @ 145 NONAME
|
||||
pjmedia_snd_port_get_ec_tail @ 146 NONAME
|
||||
pjmedia_snd_port_get_port @ 147 NONAME
|
||||
pjmedia_snd_port_get_snd_stream @ 148 NONAME
|
||||
pjmedia_snd_port_set_ec @ 149 NONAME
|
||||
pjmedia_splitcomb_create @ 150 NONAME
|
||||
pjmedia_splitcomb_create_rev_channel @ 151 NONAME
|
||||
pjmedia_splitcomb_set_channel @ 152 NONAME
|
||||
pjmedia_stream_check_dtmf @ 153 NONAME
|
||||
pjmedia_stream_create @ 154 NONAME
|
||||
pjmedia_stream_destroy @ 155 NONAME
|
||||
pjmedia_stream_dial_dtmf @ 156 NONAME
|
||||
pjmedia_stream_get_dtmf @ 157 NONAME
|
||||
pjmedia_stream_get_port @ 158 NONAME
|
||||
pjmedia_stream_get_stat @ 159 NONAME
|
||||
pjmedia_stream_get_transport @ 160 NONAME
|
||||
pjmedia_stream_info_from_sdp @ 161 NONAME
|
||||
pjmedia_stream_pause @ 162 NONAME
|
||||
pjmedia_stream_resume @ 163 NONAME
|
||||
pjmedia_stream_set_dtmf_callback @ 164 NONAME
|
||||
pjmedia_stream_start @ 165 NONAME
|
||||
pjmedia_strerror @ 166 NONAME
|
||||
pjmedia_tonegen_create @ 167 NONAME
|
||||
pjmedia_tonegen_create2 @ 168 NONAME
|
||||
pjmedia_tonegen_get_digit_map @ 169 NONAME
|
||||
pjmedia_tonegen_is_busy @ 170 NONAME
|
||||
pjmedia_tonegen_play @ 171 NONAME
|
||||
pjmedia_tonegen_play_digits @ 172 NONAME
|
||||
pjmedia_tonegen_set_digit_map @ 173 NONAME
|
||||
pjmedia_tonegen_stop @ 174 NONAME
|
||||
pjmedia_transport_udp_attach @ 175 NONAME
|
||||
pjmedia_transport_udp_close @ 176 NONAME
|
||||
pjmedia_transport_udp_create @ 177 NONAME
|
||||
pjmedia_transport_udp_create2 @ 178 NONAME
|
||||
pjmedia_transport_udp_create3 @ 179 NONAME
|
||||
pjmedia_transport_udp_get_info @ 180 NONAME
|
||||
pjmedia_transport_udp_simulate_lost @ 181 NONAME
|
||||
pjmedia_wav_player_port_create @ 182 NONAME
|
||||
pjmedia_wav_player_port_get_pos @ 183 NONAME
|
||||
pjmedia_wav_player_port_set_pos @ 184 NONAME
|
||||
pjmedia_wav_player_set_eof_cb @ 185 NONAME
|
||||
pjmedia_wav_playlist_create @ 186 NONAME
|
||||
pjmedia_wav_playlist_set_eof_cb @ 187 NONAME
|
||||
pjmedia_wav_writer_port_create @ 188 NONAME
|
||||
pjmedia_wav_writer_port_get_pos @ 189 NONAME
|
||||
pjmedia_wav_writer_port_set_cb @ 190 NONAME
|
||||
pjmedia_wave_hdr_file_to_host @ 191 NONAME
|
||||
pjmedia_wave_hdr_host_to_file @ 192 NONAME
|
|
@ -1,33 +0,0 @@
|
|||
TARGET pjmedia_audiodev.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia-audiodev
|
||||
|
||||
//
|
||||
// GCCE optimization setting
|
||||
//
|
||||
//OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
SOURCE audiodev.c
|
||||
SOURCE errno.c
|
||||
SOURCE symb_aps_dev.cpp
|
||||
SOURCE symb_mda_dev.cpp
|
||||
SOURCE symb_vas_dev.cpp
|
||||
SOURCE null_dev.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\server
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\common
|
||||
SYSTEMINCLUDE \epoc32\include\mda\common
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
||||
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
TARGET pjnath.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000005
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjnath.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjnath.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
SOURCEPATH ..\pjnath\src\pjnath
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
//
|
||||
// PJNATH files
|
||||
//
|
||||
SOURCE errno.c
|
||||
SOURCE ice_session.c
|
||||
SOURCE ice_strans.c
|
||||
SOURCE nat_detect.c
|
||||
SOURCE stun_auth.c
|
||||
SOURCE stun_msg.c
|
||||
SOURCE stun_msg_dump.c
|
||||
SOURCE stun_session.c
|
||||
SOURCE stun_sock.c
|
||||
SOURCE stun_transaction.c
|
||||
SOURCE turn_session.c
|
||||
SOURCE turn_sock.c
|
||||
|
||||
//
|
||||
// Include files
|
||||
//
|
||||
//DOCUMENT pjnath\config.h
|
||||
//DOCUMENT pjnath\\errno.h
|
||||
//DOCUMENT pjnath\\ice_session.h
|
||||
//DOCUMENT pjnath\\ice_strans.h
|
||||
//DOCUMENT pjnath\\stun_auth.h
|
||||
//DOCUMENT pjnath\\stun_config.h
|
||||
//DOCUMENT pjnath\\stun_msg.h
|
||||
//DOCUMENT pjnath\\stun_session.h
|
||||
//DOCUMENT pjnath\\stun_transaction.h
|
||||
//DOCUMENT pjnath\\types.h
|
||||
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjnath\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
EXPORTS
|
||||
pj_ice_calc_foundation @ 1 NONAME
|
||||
pj_ice_get_cand_type_name @ 2 NONAME
|
||||
pj_ice_sess_add_cand @ 3 NONAME
|
||||
pj_ice_sess_change_role @ 4 NONAME
|
||||
pj_ice_sess_create @ 5 NONAME
|
||||
pj_ice_sess_create_check_list @ 6 NONAME
|
||||
pj_ice_sess_destroy @ 7 NONAME
|
||||
pj_ice_sess_find_default_cand @ 8 NONAME
|
||||
pj_ice_sess_on_rx_pkt @ 9 NONAME
|
||||
pj_ice_sess_send_data @ 10 NONAME
|
||||
pj_ice_sess_set_prefs @ 11 NONAME
|
||||
pj_ice_sess_start_check @ 12 NONAME
|
||||
pj_ice_strans_add_cand @ 13 NONAME
|
||||
pj_ice_strans_create @ 14 NONAME
|
||||
pj_ice_strans_create_comp @ 15 NONAME
|
||||
pj_ice_strans_destroy @ 16 NONAME
|
||||
pj_ice_strans_enum_cands @ 17 NONAME
|
||||
pj_ice_strans_get_comps_status @ 18 NONAME
|
||||
pj_ice_strans_init_ice @ 19 NONAME
|
||||
pj_ice_strans_sendto @ 20 NONAME
|
||||
pj_ice_strans_set_stun_domain @ 21 NONAME
|
||||
pj_ice_strans_set_stun_srv @ 22 NONAME
|
||||
pj_ice_strans_start_ice @ 23 NONAME
|
||||
pj_ice_strans_stop_ice @ 24 NONAME
|
||||
pj_stun_auth_cred_dup @ 25 NONAME
|
||||
pj_stun_auth_valid_for_msg @ 26 NONAME
|
||||
pj_stun_authenticate_request @ 27 NONAME
|
||||
pj_stun_authenticate_response @ 28 NONAME
|
||||
pj_stun_binary_attr_create @ 29 NONAME
|
||||
pj_stun_client_tsx_create @ 30 NONAME
|
||||
pj_stun_client_tsx_destroy @ 31 NONAME
|
||||
pj_stun_client_tsx_get_data @ 32 NONAME
|
||||
pj_stun_client_tsx_is_complete @ 33 NONAME
|
||||
pj_stun_client_tsx_on_rx_msg @ 34 NONAME
|
||||
pj_stun_client_tsx_retransmit @ 35 NONAME
|
||||
pj_stun_client_tsx_schedule_destroy @ 36 NONAME
|
||||
pj_stun_client_tsx_send_msg @ 37 NONAME
|
||||
pj_stun_client_tsx_set_data @ 38 NONAME
|
||||
pj_stun_create_key @ 39 NONAME
|
||||
pj_stun_detect_nat_type @ 40 NONAME
|
||||
pj_stun_empty_attr_create @ 41 NONAME
|
||||
pj_stun_errcode_attr_create @ 42 NONAME
|
||||
pj_stun_get_attr_name @ 43 NONAME
|
||||
pj_stun_get_class_name @ 44 NONAME
|
||||
pj_stun_get_err_reason @ 45 NONAME
|
||||
pj_stun_get_method_name @ 46 NONAME
|
||||
pj_stun_get_nat_name @ 47 NONAME
|
||||
pj_stun_msg_add_attr @ 48 NONAME
|
||||
pj_stun_msg_add_binary_attr @ 49 NONAME
|
||||
pj_stun_msg_add_empty_attr @ 50 NONAME
|
||||
pj_stun_msg_add_errcode_attr @ 51 NONAME
|
||||
pj_stun_msg_add_msgint_attr @ 52 NONAME
|
||||
pj_stun_msg_add_sockaddr_attr @ 53 NONAME
|
||||
pj_stun_msg_add_string_attr @ 54 NONAME
|
||||
pj_stun_msg_add_uint64_attr @ 55 NONAME
|
||||
pj_stun_msg_add_uint_attr @ 56 NONAME
|
||||
pj_stun_msg_add_unknown_attr @ 57 NONAME
|
||||
pj_stun_msg_check @ 58 NONAME
|
||||
pj_stun_msg_create @ 59 NONAME
|
||||
pj_stun_msg_create_response @ 60 NONAME
|
||||
pj_stun_msg_decode @ 61 NONAME
|
||||
pj_stun_msg_destroy_tdata @ 62 NONAME
|
||||
pj_stun_msg_dump @ 63 NONAME
|
||||
pj_stun_msg_encode @ 64 NONAME
|
||||
pj_stun_msg_find_attr @ 65 NONAME
|
||||
pj_stun_msgint_attr_create @ 66 NONAME
|
||||
pj_stun_session_cancel_req @ 67 NONAME
|
||||
pj_stun_session_create @ 68 NONAME
|
||||
pj_stun_session_create_ind @ 69 NONAME
|
||||
pj_stun_session_create_req @ 70 NONAME
|
||||
pj_stun_session_create_res @ 71 NONAME
|
||||
pj_stun_session_destroy @ 72 NONAME
|
||||
pj_stun_session_get_user_data @ 73 NONAME
|
||||
pj_stun_session_on_rx_pkt @ 74 NONAME
|
||||
pj_stun_session_retransmit_req @ 75 NONAME
|
||||
pj_stun_session_send_msg @ 76 NONAME
|
||||
pj_stun_session_set_credential @ 77 NONAME
|
||||
pj_stun_session_set_server_name @ 78 NONAME
|
||||
pj_stun_session_set_user_data @ 79 NONAME
|
||||
pj_stun_set_padding_char @ 80 NONAME
|
||||
pj_stun_sockaddr_attr_create @ 81 NONAME
|
||||
pj_stun_string_attr_create @ 82 NONAME
|
||||
pj_stun_uint64_attr_create @ 83 NONAME
|
||||
pj_stun_uint_attr_create @ 84 NONAME
|
||||
pj_stun_unknown_attr_create @ 85 NONAME
|
||||
pjnath_init @ 86 NONAME
|
||||
pjnath_perror @ 87 NONAME
|
|
@ -1,386 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<?codewarrior exportversion="1.0" ideversion="5.5" success="y" ?>
|
||||
|
||||
<!DOCTYPE MWIDEWORKSPACE [
|
||||
<!ELEMENT MWIDEWORKSPACE (WINDOW*, COMWINDOW*)>
|
||||
<!ELEMENT WINDOW (SESSION, EDOCTYPE, PATH, FRAMELOC, FRAMESIZE, DOCKINFO)>
|
||||
<!ELEMENT COMWINDOW (SESSION, CLSID, OWNERPROJECT, DATA, FRAMELOC, FRAMESIZE, DOCKINFO)>
|
||||
<!ELEMENT SESSION (#PCDATA)>
|
||||
<!ELEMENT EDOCTYPE (#PCDATA)>
|
||||
<!ELEMENT DEFAULT (#PCDATA)>
|
||||
<!ELEMENT MAXIMIZED (#PCDATA)>
|
||||
<!ELEMENT PATH (#PCDATA)>
|
||||
<!ATTLIST PATH USERELATIVEPATHS (true | false) "true">
|
||||
<!ELEMENT FRAMELOC (X, Y)>
|
||||
<!ELEMENT X (#PCDATA)>
|
||||
<!ELEMENT Y (#PCDATA)>
|
||||
<!ELEMENT FRAMESIZE (W, H)>
|
||||
<!ELEMENT W (#PCDATA)>
|
||||
<!ELEMENT H (#PCDATA)>
|
||||
<!ELEMENT DOCKINFO (STATUS, ROW, COLUMN, DOCKBARID, PCTWIDTH, HGT, GROUPID)>
|
||||
<!ELEMENT STATUS (#PCDATA)>
|
||||
<!ELEMENT ROW (#PCDATA)>
|
||||
<!ELEMENT COLUMN (#PCDATA)>
|
||||
<!ELEMENT DOCKBARID (#PCDATA)>
|
||||
<!ELEMENT PCTWIDTH (#PCDATA)>
|
||||
<!ELEMENT HGT (#PCDATA)>
|
||||
<!ELEMENT GROUPID (GIDHIGHPART, GIDLOWPART)>
|
||||
<!ELEMENT GIDHIGHPART (#PCDATA)>
|
||||
<!ELEMENT GIDLOWPART (#PCDATA)>
|
||||
<!ELEMENT CLSID (#PCDATA)>
|
||||
<!ELEMENT OWNERPROJECT (#PCDATA)>
|
||||
<!ATTLIST OWNERPROJECT USERELATIVEPATHS (true | false) "true">
|
||||
<!ELEMENT DATA (#PCDATA)>
|
||||
<!ATTLIST DATA BINARYFORMAT (true | false) "true">
|
||||
]>
|
||||
|
||||
<MWIDEWORKSPACE>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<DEFAULT>true</DEFAULT>
|
||||
<PATH USERELATIVEPATHS = "true">pjlib.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjlib_util.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjnath.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">null_audio.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjsdp.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjmedia.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjsip.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjsip_simple.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjsip_ua.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">pjsua_lib.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-1</SESSION>
|
||||
<EDOCTYPE>0</EDOCTYPE>
|
||||
<PATH USERELATIVEPATHS = "true">symbian_ua.mcp</PATH>
|
||||
<FRAMELOC>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>347</W>
|
||||
<H>128</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>1</STATUS>
|
||||
<ROW>0</ROW>
|
||||
<COLUMN>0</COLUMN>
|
||||
<DOCKBARID>59420</DOCKBARID>
|
||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
||||
<HGT>350</HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-2147483648</SESSION>
|
||||
<EDOCTYPE>20</EDOCTYPE>
|
||||
<FRAMELOC>
|
||||
<X>4</X>
|
||||
<Y>23</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>1464</W>
|
||||
<H>3681</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>0</STATUS>
|
||||
<ROW></ROW>
|
||||
<COLUMN></COLUMN>
|
||||
<DOCKBARID></DOCKBARID>
|
||||
<PCTWIDTH></PCTWIDTH>
|
||||
<HGT></HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART></GIDHIGHPART>
|
||||
<GIDLOWPART></GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-2147483648</SESSION>
|
||||
<EDOCTYPE>36</EDOCTYPE>
|
||||
<FRAMELOC>
|
||||
<X>4</X>
|
||||
<Y>23</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>366</W>
|
||||
<H>354</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>0</STATUS>
|
||||
<ROW></ROW>
|
||||
<COLUMN></COLUMN>
|
||||
<DOCKBARID></DOCKBARID>
|
||||
<PCTWIDTH></PCTWIDTH>
|
||||
<HGT></HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART></GIDHIGHPART>
|
||||
<GIDLOWPART></GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
<WINDOW>
|
||||
<SESSION>-2147483648</SESSION>
|
||||
<EDOCTYPE>23</EDOCTYPE>
|
||||
<FRAMELOC>
|
||||
<X>6</X>
|
||||
<Y>81</Y>
|
||||
</FRAMELOC>
|
||||
<FRAMESIZE>
|
||||
<W>566</W>
|
||||
<H>477</H>
|
||||
</FRAMESIZE>
|
||||
<DOCKINFO>
|
||||
<STATUS>0</STATUS>
|
||||
<ROW></ROW>
|
||||
<COLUMN></COLUMN>
|
||||
<DOCKBARID></DOCKBARID>
|
||||
<PCTWIDTH></PCTWIDTH>
|
||||
<HGT></HGT>
|
||||
<GROUPID>
|
||||
<GIDHIGHPART></GIDHIGHPART>
|
||||
<GIDLOWPART></GIDLOWPART>
|
||||
</GROUPID>
|
||||
</DOCKINFO>
|
||||
</WINDOW>
|
||||
</MWIDEWORKSPACE>
|
|
@ -1,46 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
TARGET pjsdp.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA0000006
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjlib_util.lib pjlib.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjsdp.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjsdp.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
//
|
||||
// Platform independent source
|
||||
//
|
||||
SOURCE errno.c
|
||||
SOURCE sdp_wrap.cpp
|
||||
SOURCE sdp_cmp.c
|
||||
SOURCE sdp_neg.c
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
EXPORTS
|
||||
pjmedia_sdp_attr_add @ 1 NONAME
|
||||
pjmedia_sdp_attr_clone @ 2 NONAME
|
||||
pjmedia_sdp_attr_create @ 3 NONAME
|
||||
pjmedia_sdp_attr_find @ 4 NONAME
|
||||
pjmedia_sdp_attr_find2 @ 5 NONAME
|
||||
pjmedia_sdp_attr_get_fmtp @ 6 NONAME
|
||||
pjmedia_sdp_attr_get_rtcp @ 7 NONAME
|
||||
pjmedia_sdp_attr_get_rtpmap @ 8 NONAME
|
||||
pjmedia_sdp_attr_remove @ 9 NONAME
|
||||
pjmedia_sdp_attr_remove_all @ 10 NONAME
|
||||
pjmedia_sdp_attr_to_rtpmap @ 11 NONAME
|
||||
pjmedia_sdp_conn_clone @ 12 NONAME
|
||||
pjmedia_sdp_media_add_attr @ 13 NONAME
|
||||
pjmedia_sdp_media_clone @ 14 NONAME
|
||||
pjmedia_sdp_media_cmp @ 15 NONAME
|
||||
pjmedia_sdp_media_find_attr @ 16 NONAME
|
||||
pjmedia_sdp_media_find_attr2 @ 17 NONAME
|
||||
pjmedia_sdp_media_remove_all_attr @ 18 NONAME
|
||||
pjmedia_sdp_media_remove_attr @ 19 NONAME
|
||||
pjmedia_sdp_neg_cancel_offer @ 20 NONAME
|
||||
pjmedia_sdp_neg_create_w_local_offer @ 21 NONAME
|
||||
pjmedia_sdp_neg_create_w_remote_offer @ 22 NONAME
|
||||
pjmedia_sdp_neg_get_active_local @ 23 NONAME
|
||||
pjmedia_sdp_neg_get_active_remote @ 24 NONAME
|
||||
pjmedia_sdp_neg_get_neg_local @ 25 NONAME
|
||||
pjmedia_sdp_neg_get_neg_remote @ 26 NONAME
|
||||
pjmedia_sdp_neg_get_state @ 27 NONAME
|
||||
pjmedia_sdp_neg_has_local_answer @ 28 NONAME
|
||||
pjmedia_sdp_neg_modify_local_offer @ 29 NONAME
|
||||
pjmedia_sdp_neg_negotiate @ 30 NONAME
|
||||
pjmedia_sdp_neg_send_local_offer @ 31 NONAME
|
||||
pjmedia_sdp_neg_set_local_answer @ 32 NONAME
|
||||
pjmedia_sdp_neg_set_prefer_remote_codec_order @ 33 NONAME
|
||||
pjmedia_sdp_neg_set_remote_answer @ 34 NONAME
|
||||
pjmedia_sdp_neg_set_remote_offer @ 35 NONAME
|
||||
pjmedia_sdp_neg_state_str @ 36 NONAME
|
||||
pjmedia_sdp_neg_was_answer_remote @ 37 NONAME
|
||||
pjmedia_sdp_parse @ 38 NONAME
|
||||
pjmedia_sdp_print @ 39 NONAME
|
||||
pjmedia_sdp_rtpmap_to_attr @ 40 NONAME
|
||||
pjmedia_sdp_session_clone @ 41 NONAME
|
||||
pjmedia_sdp_session_cmp @ 42 NONAME
|
||||
pjmedia_sdp_validate @ 43 NONAME
|
||||
pjmedia_strerror @ 44 NONAME
|
|
@ -1,69 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET pjsip.dll
|
||||
TARGETTYPE dll
|
||||
|
||||
UID 0x0 0xA0000007
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjsip.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjsip.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjsip\src\pjsip
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
// PJSIP-CORE files
|
||||
|
||||
//SOURCE sip_auth_aka.c
|
||||
SOURCE sip_auth_client.c
|
||||
SOURCE sip_auth_msg.c
|
||||
SOURCE sip_auth_parser_wrap.cpp
|
||||
SOURCE sip_auth_server.c
|
||||
SOURCE sip_config.c
|
||||
SOURCE sip_dialog_wrap.cpp
|
||||
SOURCE sip_endpoint_wrap.cpp
|
||||
SOURCE sip_errno.c
|
||||
SOURCE sip_msg.c
|
||||
SOURCE sip_multipart.c
|
||||
SOURCE sip_parser_wrap.cpp
|
||||
SOURCE sip_resolve.c
|
||||
SOURCE sip_tel_uri_wrap.cpp
|
||||
SOURCE sip_transaction.c
|
||||
SOURCE sip_transport_wrap.cpp
|
||||
SOURCE sip_transport_loop.c
|
||||
SOURCE sip_transport_tcp.c
|
||||
SOURCE sip_transport_udp.c
|
||||
SOURCE sip_transport_tls.c
|
||||
SOURCE sip_ua_layer.c
|
||||
SOURCE sip_uri.c
|
||||
SOURCE sip_util_wrap.cpp
|
||||
SOURCE sip_util_proxy_wrap.cpp
|
||||
SOURCE sip_util_statefull.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjsip\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,280 +0,0 @@
|
|||
EXPORTS
|
||||
pjsip_accept_hdr_create @ 1 NONAME
|
||||
pjsip_accept_hdr_init @ 2 NONAME
|
||||
pjsip_ack_method @ 3 NONAME
|
||||
pjsip_allow_hdr_create @ 4 NONAME
|
||||
pjsip_allow_hdr_init @ 5 NONAME
|
||||
pjsip_auth_clt_clone @ 6 NONAME
|
||||
pjsip_auth_clt_get_prefs @ 7 NONAME
|
||||
pjsip_auth_clt_init @ 8 NONAME
|
||||
pjsip_auth_clt_init_req @ 9 NONAME
|
||||
pjsip_auth_clt_reinit_req @ 10 NONAME
|
||||
pjsip_auth_clt_set_credentials @ 11 NONAME
|
||||
pjsip_auth_clt_set_prefs @ 12 NONAME
|
||||
pjsip_auth_create_digest @ 13 NONAME
|
||||
pjsip_auth_deinit_parser @ 14 NONAME
|
||||
pjsip_auth_init_parser @ 15 NONAME
|
||||
pjsip_auth_srv_challenge @ 16 NONAME
|
||||
pjsip_auth_srv_init @ 17 NONAME
|
||||
pjsip_auth_srv_verify @ 18 NONAME
|
||||
pjsip_authorization_hdr_create @ 19 NONAME
|
||||
pjsip_bye_method @ 20 NONAME
|
||||
pjsip_calculate_branch_id @ 21 NONAME
|
||||
pjsip_cancel_method @ 22 NONAME
|
||||
pjsip_cid_hdr_create @ 23 NONAME
|
||||
pjsip_cid_hdr_init @ 24 NONAME
|
||||
pjsip_clen_hdr_create @ 25 NONAME
|
||||
pjsip_clen_hdr_init @ 26 NONAME
|
||||
pjsip_clone_text_data @ 27 NONAME
|
||||
pjsip_concat_param_imp @ 28 NONAME
|
||||
pjsip_contact_hdr_create @ 29 NONAME
|
||||
pjsip_contact_hdr_init @ 30 NONAME
|
||||
pjsip_cred_info_dup @ 31 NONAME
|
||||
pjsip_cseq_hdr_create @ 32 NONAME
|
||||
pjsip_cseq_hdr_init @ 33 NONAME
|
||||
pjsip_ctype_hdr_create @ 34 NONAME
|
||||
pjsip_ctype_hdr_init @ 35 NONAME
|
||||
pjsip_dlg_add_usage @ 36 NONAME
|
||||
pjsip_dlg_create_request @ 37 NONAME
|
||||
pjsip_dlg_create_response @ 38 NONAME
|
||||
pjsip_dlg_create_uac @ 39 NONAME
|
||||
pjsip_dlg_create_uas @ 40 NONAME
|
||||
pjsip_dlg_dec_lock @ 41 NONAME
|
||||
pjsip_dlg_dec_session @ 42 NONAME
|
||||
pjsip_dlg_fork @ 43 NONAME
|
||||
pjsip_dlg_get_mod_data @ 44 NONAME
|
||||
pjsip_dlg_inc_lock @ 45 NONAME
|
||||
pjsip_dlg_inc_session @ 46 NONAME
|
||||
pjsip_dlg_modify_response @ 47 NONAME
|
||||
pjsip_dlg_respond @ 48 NONAME
|
||||
pjsip_dlg_send_request @ 49 NONAME
|
||||
pjsip_dlg_send_response @ 50 NONAME
|
||||
pjsip_dlg_set_mod_data @ 51 NONAME
|
||||
pjsip_dlg_set_route_set @ 52 NONAME
|
||||
pjsip_dlg_set_transport @ 53 NONAME
|
||||
pjsip_dlg_terminate @ 54 NONAME
|
||||
pjsip_dlg_try_inc_lock @ 55 NONAME
|
||||
pjsip_endpt_acquire_transport @ 56 NONAME
|
||||
pjsip_endpt_add_capability @ 57 NONAME
|
||||
pjsip_endpt_cancel_timer @ 58 NONAME
|
||||
pjsip_endpt_create @ 59 NONAME
|
||||
pjsip_endpt_create_ack @ 60 NONAME
|
||||
pjsip_endpt_create_cancel @ 61 NONAME
|
||||
pjsip_endpt_create_pool @ 62 NONAME
|
||||
pjsip_endpt_create_request @ 63 NONAME
|
||||
pjsip_endpt_create_request_from_hdr @ 64 NONAME
|
||||
pjsip_endpt_create_request_fwd @ 65 NONAME
|
||||
pjsip_endpt_create_resolver @ 66 NONAME
|
||||
pjsip_endpt_create_response @ 67 NONAME
|
||||
pjsip_endpt_create_response_fwd @ 68 NONAME
|
||||
pjsip_endpt_create_tdata @ 69 NONAME
|
||||
pjsip_endpt_destroy @ 70 NONAME
|
||||
pjsip_endpt_dump @ 71 NONAME
|
||||
pjsip_endpt_get_capability @ 72 NONAME
|
||||
pjsip_endpt_get_ioqueue @ 73 NONAME
|
||||
pjsip_endpt_get_request_headers @ 74 NONAME
|
||||
pjsip_endpt_get_resolver @ 75 NONAME
|
||||
pjsip_endpt_get_timer_heap @ 76 NONAME
|
||||
pjsip_endpt_get_tpmgr @ 77 NONAME
|
||||
pjsip_endpt_handle_events @ 78 NONAME
|
||||
pjsip_endpt_handle_events2 @ 79 NONAME
|
||||
pjsip_endpt_has_capability @ 80 NONAME
|
||||
pjsip_endpt_log_error @ 81 NONAME
|
||||
pjsip_endpt_name @ 82 NONAME
|
||||
pjsip_endpt_register_module @ 83 NONAME
|
||||
pjsip_endpt_release_pool @ 84 NONAME
|
||||
pjsip_endpt_resolve @ 85 NONAME
|
||||
pjsip_endpt_respond @ 86 NONAME
|
||||
pjsip_endpt_respond_stateless @ 87 NONAME
|
||||
pjsip_endpt_schedule_timer @ 88 NONAME
|
||||
pjsip_endpt_send_raw @ 89 NONAME
|
||||
pjsip_endpt_send_raw_to_uri @ 90 NONAME
|
||||
pjsip_endpt_send_request @ 91 NONAME
|
||||
pjsip_endpt_send_request_stateless @ 92 NONAME
|
||||
pjsip_endpt_send_response @ 93 NONAME
|
||||
pjsip_endpt_send_response2 @ 94 NONAME
|
||||
pjsip_endpt_set_resolver @ 95 NONAME
|
||||
pjsip_endpt_unregister_module @ 96 NONAME
|
||||
pjsip_event_str @ 97 NONAME
|
||||
pjsip_expires_hdr_create @ 98 NONAME
|
||||
pjsip_expires_hdr_init @ 99 NONAME
|
||||
pjsip_find_msg @ 100 NONAME
|
||||
pjsip_from_hdr_create @ 101 NONAME
|
||||
pjsip_from_hdr_init @ 102 NONAME
|
||||
pjsip_fromto_hdr_set_from @ 103 NONAME
|
||||
pjsip_fromto_hdr_set_to @ 104 NONAME
|
||||
pjsip_generic_array_hdr_create @ 105 NONAME
|
||||
pjsip_generic_array_hdr_init @ 106 NONAME
|
||||
pjsip_generic_int_hdr_create @ 107 NONAME
|
||||
pjsip_generic_int_hdr_init @ 108 NONAME
|
||||
pjsip_generic_string_hdr_create @ 109 NONAME
|
||||
pjsip_generic_string_hdr_init @ 110 NONAME
|
||||
pjsip_generic_string_hdr_init2 @ 111 NONAME
|
||||
pjsip_get_ack_method @ 112 NONAME
|
||||
pjsip_get_bye_method @ 113 NONAME
|
||||
pjsip_get_cancel_method @ 114 NONAME
|
||||
pjsip_get_invite_method @ 115 NONAME
|
||||
pjsip_get_options_method @ 116 NONAME
|
||||
pjsip_get_register_method @ 117 NONAME
|
||||
pjsip_get_request_dest @ 118 NONAME
|
||||
pjsip_get_response_addr @ 119 NONAME
|
||||
pjsip_get_status_text @ 120 NONAME
|
||||
pjsip_hdr_clone @ 121 NONAME
|
||||
pjsip_hdr_print_on @ 122 NONAME
|
||||
pjsip_hdr_shallow_clone @ 123 NONAME
|
||||
pjsip_invite_method @ 124 NONAME
|
||||
pjsip_loop_set_delay @ 125 NONAME
|
||||
pjsip_loop_set_discard @ 126 NONAME
|
||||
pjsip_loop_set_failure @ 127 NONAME
|
||||
pjsip_loop_set_recv_delay @ 128 NONAME
|
||||
pjsip_loop_set_send_callback_delay @ 129 NONAME
|
||||
pjsip_loop_start @ 130 NONAME
|
||||
pjsip_max_fwd_hdr_create @ 131 NONAME
|
||||
pjsip_max_fwd_hdr_init @ 132 NONAME
|
||||
pjsip_method_cmp @ 133 NONAME
|
||||
pjsip_method_copy @ 134 NONAME
|
||||
pjsip_method_creates_dialog @ 135 NONAME
|
||||
pjsip_method_init @ 136 NONAME
|
||||
pjsip_method_init_np @ 137 NONAME
|
||||
pjsip_method_set @ 138 NONAME
|
||||
pjsip_min_expires_hdr_create @ 139 NONAME
|
||||
pjsip_min_expires_hdr_init @ 140 NONAME
|
||||
pjsip_msg_body_clone @ 141 NONAME
|
||||
pjsip_msg_body_copy @ 142 NONAME
|
||||
pjsip_msg_body_create @ 143 NONAME
|
||||
pjsip_msg_clone @ 144 NONAME
|
||||
pjsip_msg_create @ 145 NONAME
|
||||
pjsip_msg_find_hdr @ 146 NONAME
|
||||
pjsip_msg_find_hdr_by_name @ 147 NONAME
|
||||
pjsip_msg_find_remove_hdr @ 148 NONAME
|
||||
pjsip_msg_print @ 149 NONAME
|
||||
pjsip_name_addr_assign @ 150 NONAME
|
||||
pjsip_name_addr_create @ 151 NONAME
|
||||
pjsip_name_addr_init @ 152 NONAME
|
||||
pjsip_options_method @ 153 NONAME
|
||||
pjsip_param_cfind @ 154 NONAME
|
||||
pjsip_param_clone @ 155 NONAME
|
||||
pjsip_param_find @ 156 NONAME
|
||||
pjsip_param_print_on @ 157 NONAME
|
||||
pjsip_param_shallow_clone @ 158 NONAME
|
||||
pjsip_parse_end_hdr_imp @ 159 NONAME
|
||||
pjsip_parse_hdr @ 160 NONAME
|
||||
pjsip_parse_msg @ 161 NONAME
|
||||
pjsip_parse_param_imp @ 162 NONAME
|
||||
pjsip_parse_rdata @ 163 NONAME
|
||||
pjsip_parse_status_line @ 164 NONAME
|
||||
pjsip_parse_uri @ 165 NONAME
|
||||
pjsip_parse_uri_param_imp @ 166 NONAME
|
||||
pjsip_parser_const @ 167 NONAME
|
||||
pjsip_print_text_body @ 168 NONAME
|
||||
pjsip_process_route_set @ 169 NONAME
|
||||
pjsip_proxy_authenticate_hdr_create @ 170 NONAME
|
||||
pjsip_proxy_authorization_hdr_create @ 171 NONAME
|
||||
pjsip_rdata_get_dlg @ 172 NONAME
|
||||
pjsip_rdata_get_tsx @ 173 NONAME
|
||||
pjsip_register_hdr_parser @ 174 NONAME
|
||||
pjsip_register_method @ 175 NONAME
|
||||
pjsip_register_uri_parser @ 176 NONAME
|
||||
pjsip_require_hdr_create @ 177 NONAME
|
||||
pjsip_require_hdr_init @ 178 NONAME
|
||||
pjsip_resolve @ 179 NONAME
|
||||
pjsip_resolver_create @ 180 NONAME
|
||||
pjsip_resolver_destroy @ 181 NONAME
|
||||
pjsip_resolver_get_resolver @ 182 NONAME
|
||||
pjsip_resolver_set_resolver @ 183 NONAME
|
||||
pjsip_retry_after_hdr_create @ 184 NONAME
|
||||
pjsip_retry_after_hdr_init @ 185 NONAME
|
||||
pjsip_role_name @ 186 NONAME
|
||||
pjsip_route_hdr_create @ 187 NONAME
|
||||
pjsip_route_hdr_init @ 188 NONAME
|
||||
pjsip_routing_hdr_set_route @ 189 NONAME
|
||||
pjsip_routing_hdr_set_rr @ 190 NONAME
|
||||
pjsip_rr_hdr_create @ 191 NONAME
|
||||
pjsip_rr_hdr_init @ 192 NONAME
|
||||
pjsip_rx_data_get_info @ 193 NONAME
|
||||
pjsip_sip_uri_assign @ 194 NONAME
|
||||
pjsip_sip_uri_create @ 195 NONAME
|
||||
pjsip_sip_uri_init @ 196 NONAME
|
||||
pjsip_sip_uri_set_secure @ 197 NONAME
|
||||
pjsip_strerror @ 198 NONAME
|
||||
pjsip_supported_hdr_create @ 199 NONAME
|
||||
pjsip_supported_hdr_init @ 200 NONAME
|
||||
pjsip_tcp_transport_start @ 201 NONAME
|
||||
pjsip_tcp_transport_start2 @ 202 NONAME
|
||||
pjsip_tel_nb_cmp @ 203 NONAME
|
||||
pjsip_tel_uri_create @ 204 NONAME
|
||||
pjsip_to_hdr_create @ 205 NONAME
|
||||
pjsip_to_hdr_init @ 206 NONAME
|
||||
pjsip_tpmgr_acquire_transport @ 207 NONAME
|
||||
pjsip_tpmgr_create @ 208 NONAME
|
||||
pjsip_tpmgr_destroy @ 209 NONAME
|
||||
pjsip_tpmgr_dump_transports @ 210 NONAME
|
||||
pjsip_tpmgr_find_local_addr @ 211 NONAME
|
||||
pjsip_tpmgr_get_transport_count @ 212 NONAME
|
||||
pjsip_tpmgr_receive_packet @ 213 NONAME
|
||||
pjsip_tpmgr_register_tpfactory @ 214 NONAME
|
||||
pjsip_tpmgr_send_raw @ 215 NONAME
|
||||
pjsip_tpmgr_unregister_tpfactory @ 216 NONAME
|
||||
pjsip_tpselector_add_ref @ 217 NONAME
|
||||
pjsip_tpselector_dec_ref @ 218 NONAME
|
||||
pjsip_transport_add_ref @ 219 NONAME
|
||||
pjsip_transport_dec_ref @ 220 NONAME
|
||||
pjsip_transport_destroy @ 221 NONAME
|
||||
pjsip_transport_get_default_port_for_type @ 222 NONAME
|
||||
pjsip_transport_get_flag_from_type @ 223 NONAME
|
||||
pjsip_transport_get_type_desc @ 224 NONAME
|
||||
pjsip_transport_get_type_from_flag @ 225 NONAME
|
||||
pjsip_transport_get_type_from_name @ 226 NONAME
|
||||
pjsip_transport_get_type_name @ 227 NONAME
|
||||
pjsip_transport_register @ 228 NONAME
|
||||
pjsip_transport_register_type @ 229 NONAME
|
||||
pjsip_transport_send @ 230 NONAME
|
||||
pjsip_transport_shutdown @ 231 NONAME
|
||||
pjsip_transport_type_get_af @ 232 NONAME
|
||||
pjsip_tsx_create_key @ 233 NONAME
|
||||
pjsip_tsx_create_uac @ 234 NONAME
|
||||
pjsip_tsx_create_uas @ 235 NONAME
|
||||
pjsip_tsx_get_dlg @ 236 NONAME
|
||||
pjsip_tsx_layer_destroy @ 237 NONAME
|
||||
pjsip_tsx_layer_dump @ 238 NONAME
|
||||
pjsip_tsx_layer_find_tsx @ 239 NONAME
|
||||
pjsip_tsx_layer_get_tsx_count @ 240 NONAME
|
||||
pjsip_tsx_layer_init_module @ 241 NONAME
|
||||
pjsip_tsx_layer_instance @ 242 NONAME
|
||||
pjsip_tsx_recv_msg @ 243 NONAME
|
||||
pjsip_tsx_retransmit_no_state @ 244 NONAME
|
||||
pjsip_tsx_send_msg @ 245 NONAME
|
||||
pjsip_tsx_set_transport @ 246 NONAME
|
||||
pjsip_tsx_state_str @ 247 NONAME
|
||||
pjsip_tsx_stop_retransmit @ 248 NONAME
|
||||
pjsip_tsx_terminate @ 249 NONAME
|
||||
pjsip_tx_data_add_ref @ 250 NONAME
|
||||
pjsip_tx_data_create @ 251 NONAME
|
||||
pjsip_tx_data_dec_ref @ 252 NONAME
|
||||
pjsip_tx_data_get_info @ 253 NONAME
|
||||
pjsip_tx_data_invalidate_msg @ 254 NONAME
|
||||
pjsip_tx_data_is_valid @ 255 NONAME
|
||||
pjsip_tx_data_set_transport @ 256 NONAME
|
||||
pjsip_ua_destroy @ 257 NONAME
|
||||
pjsip_ua_dump @ 258 NONAME
|
||||
pjsip_ua_find_dialog @ 259 NONAME
|
||||
pjsip_ua_get_dlg_set_count @ 260 NONAME
|
||||
pjsip_ua_get_endpt @ 261 NONAME
|
||||
pjsip_ua_init_module @ 262 NONAME
|
||||
pjsip_ua_instance @ 263 NONAME
|
||||
pjsip_ua_register_dlg @ 264 NONAME
|
||||
pjsip_ua_unregister_dlg @ 265 NONAME
|
||||
pjsip_udp_transport_attach @ 266 NONAME
|
||||
pjsip_udp_transport_attach2 @ 267 NONAME
|
||||
pjsip_udp_transport_get_socket @ 268 NONAME
|
||||
pjsip_udp_transport_pause @ 269 NONAME
|
||||
pjsip_udp_transport_restart @ 270 NONAME
|
||||
pjsip_udp_transport_start @ 271 NONAME
|
||||
pjsip_udp_transport_start6 @ 272 NONAME
|
||||
pjsip_unsupported_hdr_create @ 273 NONAME
|
||||
pjsip_unsupported_hdr_init @ 274 NONAME
|
||||
pjsip_via_hdr_create @ 275 NONAME
|
||||
pjsip_via_hdr_init @ 276 NONAME
|
||||
pjsip_warning_hdr_create @ 277 NONAME
|
||||
pjsip_warning_hdr_create_from_status @ 278 NONAME
|
||||
pjsip_www_authenticate_hdr_create @ 279 NONAME
|
|
@ -1,54 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET pjsip_simple.dll
|
||||
TARGETTYPE dll
|
||||
|
||||
UID 0x0 0xA0000008
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjsip_simple.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjsip_simple.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjsip\src\pjsip-simple
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
// PJSIP-SIMPLE files
|
||||
|
||||
SOURCE errno.c
|
||||
SOURCE evsub.c
|
||||
SOURCE evsub_msg.c
|
||||
SOURCE iscomposing.c
|
||||
SOURCE mwi.c
|
||||
SOURCE pidf.c
|
||||
SOURCE presence.c
|
||||
SOURCE presence_body.c
|
||||
SOURCE publishc.c
|
||||
SOURCE rpid.c
|
||||
SOURCE xpidf.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjsip\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
EXPORTS
|
||||
pjpidf_create @ 1 NONAME
|
||||
pjpidf_parse @ 2 NONAME
|
||||
pjpidf_pres_add_note @ 3 NONAME
|
||||
pjpidf_pres_add_tuple @ 4 NONAME
|
||||
pjpidf_pres_construct @ 5 NONAME
|
||||
pjpidf_pres_find_tuple @ 6 NONAME
|
||||
pjpidf_pres_get_first_note @ 7 NONAME
|
||||
pjpidf_pres_get_first_tuple @ 8 NONAME
|
||||
pjpidf_pres_get_next_note @ 9 NONAME
|
||||
pjpidf_pres_get_next_tuple @ 10 NONAME
|
||||
pjpidf_pres_remove_tuple @ 11 NONAME
|
||||
pjpidf_print @ 12 NONAME
|
||||
pjpidf_status_construct @ 13 NONAME
|
||||
pjpidf_status_is_basic_open @ 14 NONAME
|
||||
pjpidf_status_set_basic_open @ 15 NONAME
|
||||
pjpidf_tuple_add_note @ 16 NONAME
|
||||
pjpidf_tuple_construct @ 17 NONAME
|
||||
pjpidf_tuple_get_contact @ 18 NONAME
|
||||
pjpidf_tuple_get_contact_prio @ 19 NONAME
|
||||
pjpidf_tuple_get_first_note @ 20 NONAME
|
||||
pjpidf_tuple_get_id @ 21 NONAME
|
||||
pjpidf_tuple_get_next_note @ 22 NONAME
|
||||
pjpidf_tuple_get_status @ 23 NONAME
|
||||
pjpidf_tuple_get_timestamp @ 24 NONAME
|
||||
pjpidf_tuple_set_contact @ 25 NONAME
|
||||
pjpidf_tuple_set_contact_prio @ 26 NONAME
|
||||
pjpidf_tuple_set_id @ 27 NONAME
|
||||
pjpidf_tuple_set_timestamp @ 28 NONAME
|
||||
pjpidf_tuple_set_timestamp_np @ 29 NONAME
|
||||
pjrpid_add_element @ 30 NONAME
|
||||
pjrpid_element_dup @ 31 NONAME
|
||||
pjrpid_get_element @ 32 NONAME
|
||||
pjsip_allow_events_hdr_create @ 33 NONAME
|
||||
pjsip_event_hdr_create @ 34 NONAME
|
||||
pjsip_evsub_accept @ 35 NONAME
|
||||
pjsip_evsub_create_uac @ 36 NONAME
|
||||
pjsip_evsub_create_uas @ 37 NONAME
|
||||
pjsip_evsub_current_notify @ 38 NONAME
|
||||
pjsip_evsub_get_allow_events_hdr @ 39 NONAME
|
||||
pjsip_evsub_get_mod_data @ 40 NONAME
|
||||
pjsip_evsub_get_state @ 41 NONAME
|
||||
pjsip_evsub_get_state_name @ 42 NONAME
|
||||
pjsip_evsub_init_module @ 43 NONAME
|
||||
pjsip_evsub_init_parser @ 44 NONAME
|
||||
pjsip_evsub_initiate @ 45 NONAME
|
||||
pjsip_evsub_instance @ 46 NONAME
|
||||
pjsip_evsub_notify @ 47 NONAME
|
||||
pjsip_evsub_register_pkg @ 48 NONAME
|
||||
pjsip_evsub_send_request @ 49 NONAME
|
||||
pjsip_evsub_set_mod_data @ 50 NONAME
|
||||
pjsip_evsub_terminate @ 51 NONAME
|
||||
pjsip_get_notify_method @ 52 NONAME
|
||||
pjsip_get_subscribe_method @ 53 NONAME
|
||||
pjsip_iscomposing_create_body @ 54 NONAME
|
||||
pjsip_iscomposing_create_xml @ 55 NONAME
|
||||
pjsip_iscomposing_parse @ 56 NONAME
|
||||
pjsip_notify_method @ 57 NONAME
|
||||
pjsip_pres_accept @ 58 NONAME
|
||||
pjsip_pres_create_pidf @ 59 NONAME
|
||||
pjsip_pres_create_uac @ 60 NONAME
|
||||
pjsip_pres_create_uas @ 61 NONAME
|
||||
pjsip_pres_create_xpidf @ 62 NONAME
|
||||
pjsip_pres_current_notify @ 63 NONAME
|
||||
pjsip_pres_get_status @ 64 NONAME
|
||||
pjsip_pres_init_module @ 65 NONAME
|
||||
pjsip_pres_initiate @ 66 NONAME
|
||||
pjsip_pres_instance @ 67 NONAME
|
||||
pjsip_pres_notify @ 68 NONAME
|
||||
pjsip_pres_parse_pidf @ 69 NONAME
|
||||
pjsip_pres_parse_xpidf @ 70 NONAME
|
||||
pjsip_pres_send_request @ 71 NONAME
|
||||
pjsip_pres_set_status @ 72 NONAME
|
||||
pjsip_pres_terminate @ 73 NONAME
|
||||
pjsip_publishc_create @ 74 NONAME
|
||||
pjsip_publishc_destroy @ 75 NONAME
|
||||
pjsip_publishc_get_pool @ 76 NONAME
|
||||
pjsip_publishc_init @ 77 NONAME
|
||||
pjsip_publishc_init_module @ 78 NONAME
|
||||
pjsip_publishc_publish @ 79 NONAME
|
||||
pjsip_publishc_send @ 80 NONAME
|
||||
pjsip_publishc_set_credentials @ 81 NONAME
|
||||
pjsip_publishc_set_route_set @ 82 NONAME
|
||||
pjsip_publishc_unpublish @ 83 NONAME
|
||||
pjsip_publishc_update_expires @ 84 NONAME
|
||||
pjsip_sub_state_hdr_create @ 85 NONAME
|
||||
pjsip_subscribe_method @ 86 NONAME
|
||||
pjsip_tsx_get_evsub @ 87 NONAME
|
||||
pjsipsimple_strerror @ 88 NONAME
|
||||
pjxpidf_create @ 89 NONAME
|
||||
pjxpidf_get_status @ 90 NONAME
|
||||
pjxpidf_get_uri @ 91 NONAME
|
||||
pjxpidf_parse @ 92 NONAME
|
||||
pjxpidf_print @ 93 NONAME
|
||||
pjxpidf_set_status @ 94 NONAME
|
||||
pjxpidf_set_uri @ 95 NONAME
|
|
@ -1,52 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET pjsip_ua.dll
|
||||
TARGETTYPE dll
|
||||
|
||||
UID 0x0 0xA0000009
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjsip_simple.lib pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjsip_ua.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjsip_ua.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjsip\src\pjsip-ua
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
|
||||
// PJSIP-UA files
|
||||
|
||||
SOURCE sip_inv.c
|
||||
SOURCE sip_reg.c
|
||||
SOURCE sip_replaces.c
|
||||
SOURCE sip_xfer.c
|
||||
SOURCE sip_100rel.c
|
||||
SOURCE sip_timer.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjsip\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
EXPORTS
|
||||
pjsip_100rel_attach @ 1 NONAME
|
||||
pjsip_100rel_create_prack @ 2 NONAME
|
||||
pjsip_100rel_end_session @ 3 NONAME
|
||||
pjsip_100rel_init_module @ 4 NONAME
|
||||
pjsip_100rel_is_reliable @ 5 NONAME
|
||||
pjsip_100rel_on_rx_prack @ 6 NONAME
|
||||
pjsip_100rel_send_prack @ 7 NONAME
|
||||
pjsip_100rel_tx_response @ 8 NONAME
|
||||
pjsip_create_sdp_body @ 9 NONAME
|
||||
pjsip_dlg_get_inv_session @ 10 NONAME
|
||||
pjsip_get_prack_method @ 11 NONAME
|
||||
pjsip_get_refer_method @ 12 NONAME
|
||||
pjsip_inv_answer @ 13 NONAME
|
||||
pjsip_inv_create_ack @ 14 NONAME
|
||||
pjsip_inv_create_uac @ 15 NONAME
|
||||
pjsip_inv_create_uas @ 16 NONAME
|
||||
pjsip_inv_end_session @ 17 NONAME
|
||||
pjsip_inv_initial_answer @ 18 NONAME
|
||||
pjsip_inv_invite @ 19 NONAME
|
||||
pjsip_inv_reinvite @ 20 NONAME
|
||||
pjsip_inv_send_msg @ 21 NONAME
|
||||
pjsip_inv_set_sdp_answer @ 22 NONAME
|
||||
pjsip_inv_state_name @ 23 NONAME
|
||||
pjsip_inv_terminate @ 24 NONAME
|
||||
pjsip_inv_update @ 25 NONAME
|
||||
pjsip_inv_usage_init @ 26 NONAME
|
||||
pjsip_inv_usage_instance @ 27 NONAME
|
||||
pjsip_inv_verify_request @ 28 NONAME
|
||||
pjsip_prack_method @ 29 NONAME
|
||||
pjsip_refer_method @ 30 NONAME
|
||||
pjsip_regc_add_headers @ 31 NONAME
|
||||
pjsip_regc_create @ 32 NONAME
|
||||
pjsip_regc_destroy @ 33 NONAME
|
||||
pjsip_regc_get_info @ 34 NONAME
|
||||
pjsip_regc_get_pool @ 35 NONAME
|
||||
pjsip_regc_init @ 36 NONAME
|
||||
pjsip_regc_register @ 37 NONAME
|
||||
pjsip_regc_send @ 38 NONAME
|
||||
pjsip_regc_set_credentials @ 39 NONAME
|
||||
pjsip_regc_set_prefs @ 40 NONAME
|
||||
pjsip_regc_set_route_set @ 41 NONAME
|
||||
pjsip_regc_set_transport @ 42 NONAME
|
||||
pjsip_regc_unregister @ 43 NONAME
|
||||
pjsip_regc_unregister_all @ 44 NONAME
|
||||
pjsip_regc_update_contact @ 45 NONAME
|
||||
pjsip_regc_update_expires @ 46 NONAME
|
||||
pjsip_replaces_hdr_create @ 47 NONAME
|
||||
pjsip_replaces_init_module @ 48 NONAME
|
||||
pjsip_replaces_verify_request @ 49 NONAME
|
||||
pjsip_xfer_accept @ 50 NONAME
|
||||
pjsip_xfer_create_uac @ 51 NONAME
|
||||
pjsip_xfer_create_uas @ 52 NONAME
|
||||
pjsip_xfer_current_notify @ 53 NONAME
|
||||
pjsip_xfer_init_module @ 54 NONAME
|
||||
pjsip_xfer_initiate @ 55 NONAME
|
||||
pjsip_xfer_notify @ 56 NONAME
|
||||
pjsip_xfer_send_request @ 57 NONAME
|
|
@ -1,41 +0,0 @@
|
|||
TARGET pjstun_client.exe
|
||||
TARGETTYPE exe
|
||||
UID 0x0 0xA000000A
|
||||
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
SOURCEPATH ..\pjnath\src\pjstun-client
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// PJSTUN-CLIENT files
|
||||
|
||||
SOURCE client_main.c
|
||||
|
||||
//SOURCE main_symbian.cpp
|
||||
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjnath\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
#if defined(PJ_BUILD_DLL)
|
||||
MACRO PJ_DLL
|
||||
LIBRARY pjnath.lib pjlib_util.lib pjlib.lib
|
||||
#else
|
||||
STATICLIBRARY pjnath.lib pjlib_util.lib pjlib.lib
|
||||
#endif
|
||||
|
||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
|
||||
#ifdef WINSCW
|
||||
STATICLIBRARY eexe.lib ecrt0.lib
|
||||
#endif
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET pjsua_lib.dll
|
||||
TARGETTYPE dll
|
||||
|
||||
UID 0x0 0xA000000B
|
||||
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjsip_ua.lib pjsip_simple.lib pjsip.lib pjmedia.lib null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\pjsua_lib.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET pjsua_lib.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjsip\src\pjsua-lib
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Must compile as C++, otherwise exception would not work
|
||||
OPTION CW -lang c++
|
||||
OPTION ARMCC --cpp --gnu
|
||||
OPTION GCC -x c++
|
||||
OPTION GCCE -x c++
|
||||
|
||||
// PJLIB-UTIL files
|
||||
|
||||
SOURCE pjsua_acc.c
|
||||
SOURCE pjsua_aud.c
|
||||
SOURCE pjsua_call.c
|
||||
SOURCE pjsua_core.c
|
||||
SOURCE pjsua_dump.c
|
||||
SOURCE pjsua_im.c
|
||||
SOURCE pjsua_media.c
|
||||
SOURCE pjsua_pres.c
|
||||
SOURCE pjsua_vid.c
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjlib-util\include
|
||||
SYSTEMINCLUDE ..\pjnath\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
SYSTEMINCLUDE ..\pjsip\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
EXPORTS
|
||||
pjsua_acc_add @ 1 NONAME
|
||||
pjsua_acc_add_local @ 2 NONAME
|
||||
pjsua_acc_config_default @ 3 NONAME
|
||||
pjsua_acc_config_dup @ 4 NONAME
|
||||
pjsua_acc_create_request @ 5 NONAME
|
||||
pjsua_acc_create_uac_contact @ 6 NONAME
|
||||
pjsua_acc_create_uas_contact @ 7 NONAME
|
||||
pjsua_acc_del @ 8 NONAME
|
||||
pjsua_acc_enum_info @ 9 NONAME
|
||||
pjsua_acc_find_for_incoming @ 10 NONAME
|
||||
pjsua_acc_find_for_outgoing @ 11 NONAME
|
||||
pjsua_acc_get_count @ 12 NONAME
|
||||
pjsua_acc_get_default @ 13 NONAME
|
||||
pjsua_acc_get_info @ 14 NONAME
|
||||
pjsua_acc_is_valid @ 15 NONAME
|
||||
pjsua_acc_modify @ 16 NONAME
|
||||
pjsua_acc_set_default @ 17 NONAME
|
||||
pjsua_acc_set_online_status @ 18 NONAME
|
||||
pjsua_acc_set_online_status2 @ 19 NONAME
|
||||
pjsua_acc_set_registration @ 20 NONAME
|
||||
pjsua_acc_set_transport @ 21 NONAME
|
||||
pjsua_buddy_add @ 22 NONAME
|
||||
pjsua_buddy_config_default @ 23 NONAME
|
||||
pjsua_buddy_del @ 24 NONAME
|
||||
pjsua_buddy_get_info @ 25 NONAME
|
||||
pjsua_buddy_is_valid @ 26 NONAME
|
||||
pjsua_buddy_subscribe_pres @ 27 NONAME
|
||||
pjsua_buddy_update_pres @ 28 NONAME
|
||||
pjsua_call_answer @ 29 NONAME
|
||||
pjsua_call_dial_dtmf @ 30 NONAME
|
||||
pjsua_call_dump @ 31 NONAME
|
||||
pjsua_call_get_conf_port @ 32 NONAME
|
||||
pjsua_call_get_count @ 33 NONAME
|
||||
pjsua_call_get_info @ 34 NONAME
|
||||
pjsua_call_get_max_count @ 35 NONAME
|
||||
pjsua_call_get_rem_nat_type @ 36 NONAME
|
||||
pjsua_call_get_user_data @ 37 NONAME
|
||||
pjsua_call_hangup @ 38 NONAME
|
||||
pjsua_call_hangup_all @ 39 NONAME
|
||||
pjsua_call_has_media @ 40 NONAME
|
||||
pjsua_call_is_active @ 41 NONAME
|
||||
pjsua_call_make_call @ 42 NONAME
|
||||
pjsua_call_reinvite @ 43 NONAME
|
||||
pjsua_call_send_im @ 44 NONAME
|
||||
pjsua_call_send_request @ 45 NONAME
|
||||
pjsua_call_send_typing_ind @ 46 NONAME
|
||||
pjsua_call_set_hold @ 47 NONAME
|
||||
pjsua_call_set_user_data @ 48 NONAME
|
||||
pjsua_call_update @ 49 NONAME
|
||||
pjsua_call_xfer @ 50 NONAME
|
||||
pjsua_call_xfer_replaces @ 51 NONAME
|
||||
pjsua_codec_get_param @ 52 NONAME
|
||||
pjsua_codec_set_param @ 53 NONAME
|
||||
pjsua_codec_set_priority @ 54 NONAME
|
||||
pjsua_conf_add_port @ 55 NONAME
|
||||
pjsua_conf_adjust_rx_level @ 56 NONAME
|
||||
pjsua_conf_adjust_tx_level @ 57 NONAME
|
||||
pjsua_conf_connect @ 58 NONAME
|
||||
pjsua_conf_disconnect @ 59 NONAME
|
||||
pjsua_conf_get_active_ports @ 60 NONAME
|
||||
pjsua_conf_get_max_ports @ 61 NONAME
|
||||
pjsua_conf_get_port_info @ 62 NONAME
|
||||
pjsua_conf_get_signal_level @ 63 NONAME
|
||||
pjsua_conf_remove_port @ 64 NONAME
|
||||
pjsua_config_default @ 65 NONAME
|
||||
pjsua_config_dup @ 66 NONAME
|
||||
pjsua_create @ 67 NONAME
|
||||
pjsua_destroy @ 68 NONAME
|
||||
pjsua_detect_nat_type @ 69 NONAME
|
||||
pjsua_dump @ 70 NONAME
|
||||
pjsua_enum_accs @ 71 NONAME
|
||||
pjsua_enum_buddies @ 72 NONAME
|
||||
pjsua_enum_calls @ 73 NONAME
|
||||
pjsua_enum_codecs @ 74 NONAME
|
||||
pjsua_enum_conf_ports @ 75 NONAME
|
||||
pjsua_enum_snd_devs @ 76 NONAME
|
||||
pjsua_enum_transports @ 77 NONAME
|
||||
pjsua_get_buddy_count @ 78 NONAME
|
||||
pjsua_get_ec_tail @ 79 NONAME
|
||||
pjsua_get_nat_type @ 80 NONAME
|
||||
pjsua_get_pjmedia_endpt @ 81 NONAME
|
||||
pjsua_get_pjsip_endpt @ 82 NONAME
|
||||
pjsua_get_pool_factory @ 83 NONAME
|
||||
pjsua_get_snd_dev @ 84 NONAME
|
||||
pjsua_get_var @ 85 NONAME
|
||||
pjsua_handle_events @ 86 NONAME
|
||||
pjsua_im_send @ 87 NONAME
|
||||
pjsua_im_typing @ 88 NONAME
|
||||
pjsua_init @ 89 NONAME
|
||||
pjsua_logging_config_default @ 90 NONAME
|
||||
pjsua_logging_config_dup @ 91 NONAME
|
||||
pjsua_media_config_default @ 92 NONAME
|
||||
pjsua_media_transports_create @ 93 NONAME
|
||||
pjsua_msg_data_init @ 94 NONAME
|
||||
pjsua_perror @ 95 NONAME
|
||||
pjsua_player_create @ 96 NONAME
|
||||
pjsua_player_destroy @ 97 NONAME
|
||||
pjsua_player_get_conf_port @ 98 NONAME
|
||||
pjsua_player_get_port @ 99 NONAME
|
||||
pjsua_player_set_pos @ 100 NONAME
|
||||
pjsua_playlist_create @ 101 NONAME
|
||||
pjsua_pool_create @ 102 NONAME
|
||||
pjsua_pres_dump @ 103 NONAME
|
||||
pjsua_reconfigure_logging @ 104 NONAME
|
||||
pjsua_recorder_create @ 105 NONAME
|
||||
pjsua_recorder_destroy @ 106 NONAME
|
||||
pjsua_recorder_get_conf_port @ 107 NONAME
|
||||
pjsua_recorder_get_port @ 108 NONAME
|
||||
pjsua_set_ec @ 109 NONAME
|
||||
pjsua_set_no_snd_dev @ 110 NONAME
|
||||
pjsua_set_null_snd_dev @ 111 NONAME
|
||||
pjsua_set_snd_dev @ 112 NONAME
|
||||
pjsua_start @ 113 NONAME
|
||||
pjsua_transport_close @ 114 NONAME
|
||||
pjsua_transport_config_default @ 115 NONAME
|
||||
pjsua_transport_config_dup @ 116 NONAME
|
||||
pjsua_transport_create @ 117 NONAME
|
||||
pjsua_transport_get_info @ 118 NONAME
|
||||
pjsua_transport_register @ 119 NONAME
|
||||
pjsua_transport_set_enable @ 120 NONAME
|
||||
pjsua_verify_sip_url @ 121 NONAME
|
|
@ -1,47 +0,0 @@
|
|||
#if defined(PJ_BUILD_DLL)
|
||||
|
||||
TARGET symbian_audio.dll
|
||||
TARGETTYPE dll
|
||||
UID 0x0 0xA000000C
|
||||
|
||||
CAPABILITY None
|
||||
LIBRARY pjlib.lib charconv.lib euser.lib estlib.lib
|
||||
LIBRARY mediaclientaudiostream.lib
|
||||
LIBRARY mediaclientaudioinputstream.lib
|
||||
|
||||
MACRO PJ_DLL
|
||||
MACRO PJ_EXPORTING
|
||||
|
||||
DEFFILE .\symbian_audio.def
|
||||
|
||||
#else
|
||||
|
||||
TARGET symbian_audio.lib
|
||||
TARGETTYPE lib
|
||||
|
||||
#endif
|
||||
|
||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
||||
|
||||
OPTION CW -lang c++
|
||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
SOURCE nullsound.c
|
||||
SOURCE symbian_sound.cpp
|
||||
SOURCE symbian_sound_aps.cpp
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\server
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\common
|
||||
SYSTEMINCLUDE \epoc32\include\mda\common
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
EXPORTS
|
||||
pjmedia_snd_deinit @ 1 NONAME
|
||||
pjmedia_snd_get_dev_count @ 2 NONAME
|
||||
pjmedia_snd_get_dev_info @ 3 NONAME
|
||||
pjmedia_snd_init @ 4 NONAME
|
||||
pjmedia_snd_open @ 5 NONAME
|
||||
pjmedia_snd_open_player @ 6 NONAME
|
||||
pjmedia_snd_open_rec @ 7 NONAME
|
||||
pjmedia_snd_stream_close @ 8 NONAME
|
||||
pjmedia_snd_stream_get_info @ 9 NONAME
|
||||
pjmedia_snd_stream_start @ 10 NONAME
|
||||
pjmedia_snd_stream_stop @ 11 NONAME
|
|
@ -1,51 +0,0 @@
|
|||
#define SND_USE_APS 0
|
||||
#define SND_USE_VAS 0
|
||||
|
||||
TARGET symsndtest.exe
|
||||
TARGETTYPE exe
|
||||
UID 0x0 0xA000000E
|
||||
|
||||
OPTION ARMCC --gnu
|
||||
|
||||
SOURCEPATH ..\pjsip-apps\src\symsndtest
|
||||
|
||||
MACRO PJ_M_I386=1
|
||||
MACRO PJ_SYMBIAN=1
|
||||
|
||||
// Test files
|
||||
|
||||
SOURCE app_main.cpp
|
||||
SOURCE main_symbian.cpp
|
||||
|
||||
START RESOURCE symsndtest_reg.rss
|
||||
TARGETPATH \private\10003a3f\apps
|
||||
END
|
||||
|
||||
SYSTEMINCLUDE ..\pjlib\include
|
||||
SYSTEMINCLUDE ..\pjmedia\include
|
||||
|
||||
SYSTEMINCLUDE \epoc32\include
|
||||
SYSTEMINCLUDE \epoc32\include\libc
|
||||
|
||||
LIBRARY charconv.lib euser.lib estlib.lib
|
||||
LIBRARY esock.lib insock.lib
|
||||
STATICLIBRARY pjmedia_audiodev.lib
|
||||
STATICLIBRARY pjmedia.lib
|
||||
STATICLIBRARY pjlib.lib
|
||||
STATICLIBRARY libresample.lib
|
||||
|
||||
#if SND_USE_APS
|
||||
LIBRARY APSSession2.lib
|
||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment MultimediaDD
|
||||
#elif SND_USE_VAS
|
||||
LIBRARY VoIPAudioIntfc.lib
|
||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment MultimediaDD
|
||||
#else
|
||||
LIBRARY mediaclientaudiostream.lib
|
||||
LIBRARY mediaclientaudioinputstream.lib
|
||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
|
||||
#endif
|
||||
|
||||
#ifdef WINSCW
|
||||
STATICLIBRARY eexe.lib ecrt0.lib
|
||||
#endif
|
|
@ -1,19 +0,0 @@
|
|||
; symsndtest.pkg
|
||||
|
||||
; Languages
|
||||
&EN
|
||||
|
||||
; Header
|
||||
#{"symsndtest"},(0xA000000E), 0, 1, 1
|
||||
|
||||
; Platform compatibility
|
||||
[0x101F7961], *, *, *, {"Series60ProductID"}
|
||||
|
||||
; vendor
|
||||
%{"PJSIP"}
|
||||
:"PJSIP"
|
||||
|
||||
; Target
|
||||
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\symsndtest.exe"-"!:\sys\bin\symsndtest.exe"
|
||||
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\symsndtest_reg.rSC"-"!:\private\10003a3f\import\apps\symsndtest_reg.rSC"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
export CC = @CC@ -c
|
||||
export CXX = @CXX@ -c
|
||||
export AR = @AR@
|
||||
export AR_FLAGS = @AR_FLAGS@
|
||||
export LD = @LD@
|
||||
export LDOUT = -o
|
||||
export RANLIB = @RANLIB@
|
||||
|
||||
export OBJEXT := .@OBJEXT@
|
||||
export LIBEXT := .@LIBEXT@
|
||||
export LIBEXT2 := @LIBEXT2@
|
||||
|
||||
export CC_OUT := @CC_OUT@
|
||||
export CC_INC := @CC_INC@
|
||||
export CC_DEF := @CC_DEF@
|
||||
export CC_OPTIMIZE := @CC_OPTIMIZE@
|
||||
export CC_LIB := -l
|
||||
|
||||
export CC_SOURCES :=
|
||||
export CC_CFLAGS := @CC_CFLAGS@
|
||||
export CC_LDFLAGS :=
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
export CC = $(CROSS_COMPILE)gcc -c
|
||||
export AR = $(CROSS_COMPILE)ar rv
|
||||
export LD = $(CROSS_COMPILE)gcc
|
||||
export LDOUT = -o
|
||||
export RANLIB = $(CROSS_COMPILE)ranlib
|
||||
|
||||
export OBJEXT := .o
|
||||
export LIBEXT := .a
|
||||
export LIBEXT2 :=
|
||||
|
||||
export CC_OUT := -o
|
||||
export CC_INC := -I
|
||||
export CC_DEF := -D
|
||||
export CC_OPTIMIZE := -O2
|
||||
export CC_LIB := -l
|
||||
|
||||
export CC_SOURCES :=
|
||||
export CC_CFLAGS := -Wall
|
||||
#export CC_CFLAGS += -Wdeclaration-after-statement
|
||||
#export CC_CXXFLAGS := -Wdeclaration-after-statement
|
||||
export CC_LDFLAGS :=
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
export CC := cl /c /nologo
|
||||
export AR := lib /NOLOGO /OUT:
|
||||
export LD := cl /nologo
|
||||
export LDOUT := /Fe
|
||||
export RANLIB := echo ranlib
|
||||
|
||||
export OBJEXT := .obj
|
||||
export LIBEXT := .lib
|
||||
export LIBEXT2 := .LIB
|
||||
|
||||
export CC_OUT := /Fo
|
||||
export CC_INC := /I
|
||||
export CC_DEF := /D
|
||||
export CC_OPTIMIZE := /Ox
|
||||
export CC_LIB :=
|
||||
|
||||
export CC_SOURCES :=
|
||||
export CC_CFLAGS := /W4 /MT
|
||||
export CC_CXXFLAGS := /GX
|
||||
export CC_LDFLAGS := /MT
|
|
@ -1,63 +0,0 @@
|
|||
#
|
||||
# Include host/target/compiler selection.
|
||||
# This will export CC_NAME, MACHINE_NAME, OS_NAME, and HOST_NAME variables.
|
||||
#
|
||||
include $(PJDIR)/build.mak
|
||||
|
||||
#
|
||||
# Include global compiler specific definitions
|
||||
#
|
||||
include $(PJDIR)/build/cc-$(CC_NAME).mak
|
||||
|
||||
#
|
||||
# (Optionally) Include compiler specific configuration that is
|
||||
# specific to this project. This configuration file is
|
||||
# located in this directory.
|
||||
#
|
||||
-include cc-$(CC_NAME).mak
|
||||
|
||||
#
|
||||
# Include auto configured compiler specification.
|
||||
# This will override the compiler settings above.
|
||||
# Currently this is made OPTIONAL, to prevent people
|
||||
# from getting errors because they don't re-run ./configure
|
||||
# after downloading new PJSIP.
|
||||
#
|
||||
-include $(PJDIR)/build/cc-auto.mak
|
||||
|
||||
#
|
||||
# Include global machine specific definitions
|
||||
#
|
||||
include $(PJDIR)/build/m-$(MACHINE_NAME).mak
|
||||
-include m-$(MACHINE_NAME).mak
|
||||
|
||||
#
|
||||
# Include target OS specific definitions
|
||||
#
|
||||
include $(PJDIR)/build/os-$(OS_NAME).mak
|
||||
|
||||
#
|
||||
# (Optionally) Include target OS specific configuration that is
|
||||
# specific to this project. This configuration file is
|
||||
# located in this directory.
|
||||
#
|
||||
-include os-$(OS_NAME).mak
|
||||
|
||||
#
|
||||
# Include host specific definitions
|
||||
#
|
||||
include $(PJDIR)/build/host-$(HOST_NAME).mak
|
||||
|
||||
#
|
||||
# (Optionally) Include host specific configuration that is
|
||||
# specific to this project. This configuration file is
|
||||
# located in this directory.
|
||||
#
|
||||
-include host-$(HOST_NAME).mak
|
||||
|
||||
#
|
||||
# Include global user configuration, if any
|
||||
#
|
||||
-include $(PJDIR)/user.mak
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
export HOST_MV := mv
|
||||
export HOST_RM := rm -f @@
|
||||
export HOST_RMR := rm -rf @@
|
||||
export HOST_RMDIR := rm -rf @@
|
||||
export HOST_MKDIR := mkdir @@
|
||||
export HOST_EXE := .exe
|
||||
export HOST_PSEP := /
|
||||
|
||||
export HOST_SOURCES :=
|
||||
export HOST_CFLAGS :=
|
||||
export HOST_CXXFLAGS :=
|
||||
export HOST_LDFLAGS := $(CC_LIB)stdc++$(LIBEXT2)
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
export HOST_MV := mv
|
||||
export HOST_RM := rm -f @@
|
||||
export HOST_RMR := rm -rf @@
|
||||
export HOST_RMDIR := rm -rf @@
|
||||
export HOST_MKDIR := mkdir -p @@
|
||||
export HOST_EXE := $(HOST_EXE)
|
||||
export HOST_PSEP := /
|
||||
|
||||
export HOST_SOURCES :=
|
||||
export HOST_CFLAGS :=
|
||||
export HOST_CXXFLAGS :=
|
||||
export HOST_LDFLAGS :=
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
export HOST_MV := ren
|
||||
export HOST_RM := if exist @@; del /F /Q @@
|
||||
export HOST_RMR := if exist @@; del /F /Q @@
|
||||
export HOST_RMDIR := if exist @@; rmdir @@
|
||||
export HOST_MKDIR := if not exist @@; mkdir @@
|
||||
export HOST_EXE := .exe
|
||||
export HOST_PSEP := \\
|
||||
|
||||
export HOST_SOURCES :=
|
||||
export HOST_CFLAGS :=
|
||||
export HOST_CXXFLAGS :=
|
||||
export HOST_LDFLAGS :=
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_ALPHA=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_ARMV4=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1 +0,0 @@
|
|||
# Nothing needs to be defined here
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_I386=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_M68K=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,9 +0,0 @@
|
|||
#
|
||||
# PowerPC MPC860 specific.
|
||||
# It's a PowerPC without floating point support.
|
||||
#
|
||||
export M_CFLAGS := $(CC_DEF)PJ_M_POWERPC=1 $(CC_DEF)PJ_HAS_FLOATING_POINT=0 -mcpu=860
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS := -mcpu=860
|
||||
export M_SOURCES :=
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_POWERPC=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_SPARC=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,4 +0,0 @@
|
|||
export M_CFLAGS := $(CC_DEF)PJ_M_X86_64=1
|
||||
export M_CXXFLAGS :=
|
||||
export M_LDFLAGS :=
|
||||
export M_SOURCES :=
|
|
@ -1,11 +0,0 @@
|
|||
# @configure_input@
|
||||
|
||||
export OS_CFLAGS := $(CC_DEF)PJ_AUTOCONF=1 @CFLAGS@
|
||||
|
||||
export OS_CXXFLAGS := $(CC_DEF)PJ_AUTOCONF=1 @CXXFLAGS@
|
||||
|
||||
export OS_LDFLAGS := @LDFLAGS@ @LIBS@
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
export OS_CFLAGS := $(CC_DEF)PJ_DARWINOS=1
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) -framework CoreAudio -lm
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
export OS_CFLAGS := $(CC_DEF)PJ_LINUX=1
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS := -lportaudio-$(TARGET_NAME) -lgsmcodec-$(TARGET_NAME) -lilbccodec-$(TARGET_NAME) -lspeex-$(TARGET_NAME) -lresample-$(TARGET_NAME) $(CC_LIB)pthread$(LIBEXT2) -lm
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
#
|
||||
# make-mingw.inc: Mingw specific compilation switches.
|
||||
#
|
||||
PALM_OS_SDK_VER := 0x06000000
|
||||
PALM_OS_TARGET_HOST := TARGET_HOST_PALMOS
|
||||
PALM_OS_TARGET_PLATFORM := TARGET_PLATFORM_PALMSIM_WIN32
|
||||
PALM_OS_BUILD_TYPE := BUILD_TYPE_DEBUG
|
||||
PALM_OS_TRACE_OUTPUT := TRACE_OUTPUT_ON
|
||||
PALM_OS_CPU_TYPE := CPU_ARM
|
||||
|
||||
export CROSS_COMPILE :=
|
||||
|
||||
ifeq ($(CC_NAME),gcc)
|
||||
export CFLAGS += -mno-cygwin -fexceptions -frtti
|
||||
endif
|
||||
|
||||
export OS_CFLAGS := $(CC_DEF)PJ_PALMOS=1 \
|
||||
$(CC_DEF)__PALMOS_KERNEL__=1 \
|
||||
$(CC_DEF)__PALMOS__=$(PALM_OS_SDK_VER) \
|
||||
$(CC_DEF)BUILD_TYPE=$(PALM_OS_BUILD_TYPE) \
|
||||
$(CC_DEF)TRACE_OUTPUT=$(PALM_OS_TRACE_OUTPUT) \
|
||||
$(CC_DEF)_SUPPORTS_NAMESPACE=0 \
|
||||
$(CC_DEF)_SUPPORTS_RTTI=0 \
|
||||
$(CC_DEF)TARGET_HOST=$(PALM_OS_TRAGET_HOST) \
|
||||
$(CC_DEF)TARGET_PLATFORM=$(PALM_OS_TARGET_PLATFORM)
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS :=
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#
|
||||
# Global OS specific configurations for RTEMS OS.
|
||||
#
|
||||
# Thanks Zetron, Inc and Phil Torre <ptorre@zetron.com> for donating PJLIB
|
||||
# port to RTEMS.
|
||||
#
|
||||
export RTEMS_DEBUG := -ggdb3 -DRTEMS_DEBUG -DDEBUG -qrtems_debug
|
||||
|
||||
export OS_CFLAGS := $(CC_DEF)PJ_RTEMS=1 \
|
||||
-B$(RTEMS_LIBRARY_PATH)/lib/ -specs bsp_specs -qrtems
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS := -B$(RTEMS_LIBRARY_PATH)/lib/ -specs bsp_specs -qrtems -lm
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
export OS_CFLAGS := $(CC_DEF)PJ_SUNOS=1
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) \
|
||||
$(CC_LIB)socket$(LIBEXT2) \
|
||||
$(CC_LIB)rt$(LIBEXT2) \
|
||||
$(CC_LIB)nsl$(LIBEXT2) \
|
||||
$(CC_LIB)m$(LIBEXT2)
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
export OS_CFLAGS := $(CC_DEF)PJ_WIN32=1
|
||||
|
||||
export OS_CXXFLAGS :=
|
||||
|
||||
export OS_LDFLAGS := $(CC_LIB)wsock32$(LIBEXT2) \
|
||||
$(CC_LIB)ws2_32$(LIBEXT2)\
|
||||
$(CC_LIB)ole32$(LIBEXT2)\
|
||||
$(CC_LIB)m$(LIBEXT2)
|
||||
|
||||
export OS_SOURCES :=
|
||||
|
||||
|
|
@ -1,249 +0,0 @@
|
|||
ifeq ($(LIBDIR),)
|
||||
LIBDIR = ../lib
|
||||
endif
|
||||
ifeq ($(BINDIR),)
|
||||
BINDIR = ../bin
|
||||
endif
|
||||
|
||||
#
|
||||
# The name(s) of output lib file(s) (e.g. libapp.a).
|
||||
#
|
||||
LIB := $($(APP)_LIB)
|
||||
SHLIB = $($(APP)_SHLIB)
|
||||
SONAME = $($(APP)_SONAME)
|
||||
|
||||
ifeq ($(SHLIB_SUFFIX),so)
|
||||
SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
|
||||
else ifeq ($(SHLIB_SUFFIX),dylib)
|
||||
SHLIB_OPT := -dynamiclib -undefined dynamic_lookup -flat_namespace
|
||||
else ifeq ($(SHLIB_SUFFIX),dll)
|
||||
SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
|
||||
else
|
||||
SHLIB_OPT :=
|
||||
endif
|
||||
|
||||
#
|
||||
# The name of output executable file (e.g. app.exe).
|
||||
#
|
||||
EXE = $($(APP)_EXE)
|
||||
|
||||
#
|
||||
# Source directory
|
||||
#
|
||||
SRCDIR = $($(APP)_SRCDIR)
|
||||
|
||||
#
|
||||
# Output directory for object files (i.e. output/target)
|
||||
#
|
||||
OBJDIR = output/$(app)-$(TARGET_NAME)
|
||||
|
||||
ifeq ($(OS_NAME),linux-kernel)
|
||||
export $(APP)_CFLAGS += -DKBUILD_MODNAME=$(app) -DKBUILD_BASENAME=$(app)
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# OBJS is ./output/target/file.o
|
||||
#
|
||||
OBJS = $(foreach file, $($(APP)_OBJS), $(OBJDIR)/$(file))
|
||||
OBJDIRS := $(sort $(dir $(OBJS)))
|
||||
|
||||
#
|
||||
# FULL_SRCS is ../src/app/file1.c ../src/app/file1.S
|
||||
#
|
||||
FULL_SRCS = $(foreach file, $($(APP)_OBJS), $(SRCDIR)/$(basename $(file)).m $(SRCDIR)/$(basename $(file)).c $(SRCDIR)/$(basename $(file)).cpp $(SRCDIR)/$(basename $(file)).cc $(SRCDIR)/$(basename $(file)).S)
|
||||
|
||||
#
|
||||
# When generating dependency (gcc -MM), ideally we use only either
|
||||
# CFLAGS or CXXFLAGS (not both). But I just couldn't make if/ifeq to work.
|
||||
#
|
||||
#DEPFLAGS = $($(APP)_CXXFLAGS) $($(APP)_CFLAGS)
|
||||
DEPCFLAGS = $($(APP)_CFLAGS)
|
||||
DEPCXXFLAGS = $($(APP)_CXXFLAGS)
|
||||
|
||||
# Dependency file
|
||||
DEP_FILE := .$(app)-$(TARGET_NAME).depend
|
||||
|
||||
|
||||
print_common:
|
||||
@echo "###"
|
||||
@echo "### DUMPING MAKE VARIABLES (I WON'T DO ANYTHING ELSE):"
|
||||
@echo "###"
|
||||
@echo APP=$(APP)
|
||||
@echo OBJDIR=$(OBJDIR)
|
||||
@echo OBJDIRS=$(OBJDIRS)
|
||||
@echo OBJS=$(OBJS)
|
||||
@echo SRCDIR=$(SRCDIR)
|
||||
@echo FULL_SRCS=$(FULL_SRCS)
|
||||
@echo $(APP)_CFLAGS=$($(APP)_CFLAGS)
|
||||
@echo $(APP)_CXXFLAGS=$($(APP)_CXXFLAGS)
|
||||
@echo $(APP)_LDFLAGS=$($(APP)_LDFLAGS)
|
||||
# @echo DEPFLAGS=$(DEPFLAGS)
|
||||
@echo CC=$(CC)
|
||||
@echo AR=$(AR)
|
||||
@echo AR_FLAGS=$(AR_FLAGS)
|
||||
@echo RANLIB=$(RANLIB)
|
||||
|
||||
print_bin: print_common
|
||||
@echo EXE=$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE))
|
||||
@echo BINDIR=$(BINDIR)
|
||||
|
||||
print_lib: print_common
|
||||
ifneq ($(LIB),)
|
||||
@echo LIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB))
|
||||
endif
|
||||
ifneq ($(SHLIB),)
|
||||
@echo SHLIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
|
||||
endif
|
||||
ifneq ($(SONAME),)
|
||||
@echo SONAME=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME))
|
||||
endif
|
||||
@echo LIBDIR=$(LIBDIR)
|
||||
|
||||
ifneq ($(LIB),)
|
||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
||||
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
|
||||
$(AR) $(AR_FLAGS) $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
endif
|
||||
|
||||
ifneq ($(SHLIB),)
|
||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
||||
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
|
||||
$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS) $(SHLIB_OPT)
|
||||
endif
|
||||
|
||||
ifneq ($(SONAME),)
|
||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)): $(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
|
||||
ln -sf $(SHLIB) $@
|
||||
endif
|
||||
|
||||
ifneq ($(EXE),)
|
||||
$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
||||
if test ! -d $(BINDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR)); fi
|
||||
$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)) \
|
||||
$(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
|
||||
endif
|
||||
|
||||
$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
|
||||
$(CROSS_COMPILE)ld -r -o $@ $(OBJS)
|
||||
|
||||
$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o | $(OBJDIRS)
|
||||
@echo Creating kbuild Makefile...
|
||||
@echo "# Our module name:" > $(OBJDIR)/Makefile
|
||||
@echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
|
||||
@echo >> $(OBJDIR)/Makefile
|
||||
@echo "# Object members:" >> $(OBJDIR)/Makefile
|
||||
@echo -n '$(app)-objs += ' >> $(OBJDIR)/Makefile
|
||||
@for file in $($(APP)_OBJS); do \
|
||||
echo -n "$$file " >> $(OBJDIR)/Makefile; \
|
||||
done
|
||||
@echo >> $(OBJDIR)/Makefile
|
||||
@echo >> $(OBJDIR)/Makefile
|
||||
@echo "# Prevent .o files to be built by kbuild:" >> $(OBJDIR)/Makefile
|
||||
@for file in $($(APP)_OBJS); do \
|
||||
echo ".PHONY: `pwd`/$(OBJDIR)/$$file" >> $(OBJDIR)/Makefile; \
|
||||
done
|
||||
@echo >> $(OBJDIR)/Makefile
|
||||
@echo all: >> $(OBJDIR)/Makefile
|
||||
@echo -e "\tmake -C $(KERNEL_DIR) M=`pwd`/$(OBJDIR) modules $(KERNEL_ARCH)" >> $(OBJDIR)/Makefile
|
||||
@echo Invoking kbuild...
|
||||
make -C $(OBJDIR)
|
||||
|
||||
../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
|
||||
cp $(OBJDIR)/$(app).ko ../lib
|
||||
|
||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.m | $(OBJDIRS)
|
||||
$(CC) $($(APP)_CFLAGS) \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c | $(OBJDIRS)
|
||||
$(CC) $($(APP)_CFLAGS) \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S | $(OBJDIRS)
|
||||
$(CC) $($(APP)_CFLAGS) \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIR)/dshowclasses.o: $(SRCDIR)/dshowclasses.cpp | $(OBJDIRS)
|
||||
$(CXX) $($(APP)_CXXFLAGS) -I$(SRCDIR)/../../../third_party/BaseClasses -fpermissive \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp | $(OBJDIRS)
|
||||
$(CXX) $($(APP)_CXXFLAGS) \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cc | $(OBJDIRS)
|
||||
$(CXX) $($(APP)_CXXFLAGS) \
|
||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
||||
$(subst /,$(HOST_PSEP),$<)
|
||||
|
||||
$(OBJDIRS):
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
||||
|
||||
$(LIBDIR):
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
||||
|
||||
$(BINDIR):
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
||||
|
||||
clean:
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR))
|
||||
ifeq ($(OS_NAME),linux-kernel)
|
||||
rm -f ../lib/$(app).o
|
||||
endif
|
||||
|
||||
gcov-report:
|
||||
for file in $(FULL_SRCS); do \
|
||||
gcov $$file -n -o $(OBJDIR); \
|
||||
done
|
||||
|
||||
realclean: clean
|
||||
ifneq ($(LIB),)
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)),$(HOST_RM))
|
||||
endif
|
||||
ifneq ($(SHLIB),)
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)),$(HOST_RM))
|
||||
endif
|
||||
ifneq ($(SONAME),)
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)),$(HOST_RM))
|
||||
endif
|
||||
ifneq ($(EXE),)
|
||||
$(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)),$(HOST_RM))
|
||||
endif
|
||||
$(subst @@,$(DEP_FILE),$(HOST_RM))
|
||||
ifeq ($(OS_NAME),linux-kernel)
|
||||
rm -f ../lib/$(app).ko
|
||||
endif
|
||||
|
||||
depend:
|
||||
$(subst @@,$(DEP_FILE),$(HOST_RM))
|
||||
for F in $(FULL_SRCS); do \
|
||||
if test -f $$F; then \
|
||||
echo "$(OBJDIR)/" | tr -d '\n' >> $(DEP_FILE); \
|
||||
if echo $$F | grep -q .cpp$$; then \
|
||||
dep="$(CC) -M $(DEPCXXFLAGS) $$F"; \
|
||||
else \
|
||||
dep="$(CC) -M $(DEPCFLAGS) $$F"; \
|
||||
fi; \
|
||||
if eval $$dep | sed '/^#/d' >> $(DEP_FILE); then \
|
||||
true; \
|
||||
else \
|
||||
echo 'err:' >> $(DEP_FILE); \
|
||||
rm -f $(DEP_FILE); \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
dep: depend
|
||||
|
||||
-include $(DEP_FILE)
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
</ImportGroup>
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
- Set the API Family here:
|
||||
* WinDesktop (Desktop)
|
||||
* UWP (UWP)
|
||||
* WinPhone8 (Windows Phone 8)
|
||||
-->
|
||||
<API_Family>WinDesktop</API_Family>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<TargetCPU>ARMv7</TargetCPU>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineARM</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="TargetCPU">
|
||||
<Value>$(TargetCPU)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-arm-common-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,9 +0,0 @@
|
|||
<!--This will define targets to override the default ones useful to skipped the target of specific project-->
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="Build">
|
||||
<Message Text="Skipped project build"></Message>
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<Message Text="Skipped project clean"></Message>
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-api-def.props" />
|
||||
</ImportGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(Platform)'=='ARM' ">
|
||||
<PropertyGroup>
|
||||
<API_Family Condition="'$(API_Family)'=='WinDesktop'">UWP</API_Family>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<When Condition="'$(Platform)'=='Win32' Or '$(Platform)'=='x64'">
|
||||
<PropertyGroup>
|
||||
<API_Family Condition="'$(API_Family)'=='WinPhone8'">UWP</API_Family>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
</Choose>
|
||||
<PropertyGroup>
|
||||
<API_Family Condition="'$(API_Family)'==''">WinDesktop</API_Family>
|
||||
<PreprocessorDef></PreprocessorDef>
|
||||
<DefaultToolset>v140</DefaultToolset>
|
||||
</PropertyGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(API_Family)'=='WinDesktop'">
|
||||
<PropertyGroup>
|
||||
<BuildToolset>v140</BuildToolset>
|
||||
<PreprocessorDef Condition="'$(Platform)'=='Win32'">WIN32;PJ_WIN32=1;PJ_M_I386=1;</PreprocessorDef>
|
||||
<PreprocessorDef Condition="'$(Platform)'=='x64'">WIN64;PJ_WIN64=1;PJ_M_X86_64=1;</PreprocessorDef>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<When Condition="'$(API_Family)'=='UWP'">
|
||||
<PropertyGroup>
|
||||
<BuildToolset>v140</BuildToolset>
|
||||
<PreprocessorDef>PJ_WIN32_UWP;UNICODE;_UNICODE;</PreprocessorDef>
|
||||
<PreprocessorDef Condition="'$(Platform)'=='ARM'">$(PreprocessorDef);PJ_M_ARMV7=1;</PreprocessorDef>
|
||||
<PlatformVersion>10.0.10586.0</PlatformVersion>
|
||||
<MinPlatformVersion>10.0.10240.0</MinPlatformVersion>
|
||||
<AppTypeRev>10.0</AppTypeRev>
|
||||
|
||||
<WindowsTargetPlatformVersion>$(PlatformVersion)</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformMinVersion>$(MinPlatformVersion)</WindowsTargetPlatformMinVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Store</ApplicationType>
|
||||
<ApplicationTypeRevision>$(AppTypeRev)</ApplicationTypeRevision>
|
||||
|
||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||
<TargetPlatformVersion>$(PlatformVersion)</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>$(MinPlatformVersion)</TargetPlatformMinVersion>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<When Condition="'$(API_Family)'=='WinPhone8'">
|
||||
<PropertyGroup>
|
||||
<BuildToolset>v110_wp80</BuildToolset>
|
||||
<PreprocessorDef>PJ_WIN32_WINPHONE8;PJ_M_ARMV7=1;UNICODE;_UNICODE;</PreprocessorDef>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
</Choose>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(PreprocessorDef);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild Condition="'$(API_Family)'=='UWP'">false</MinimalRebuild>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<VSVer>14</VSVer>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(TargetExt)'=='.lib'">..\lib\</OutDir>
|
||||
<OutDir Condition="'$(TargetExt)'=='.exe'">..\bin\</OutDir>
|
||||
<OutDir Condition="'$(TargetExt)'=='.dll'">..\lib\</OutDir>
|
||||
<TargetName>$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration)</TargetName>
|
||||
<IntDir>.\output\$(ProjectName)-$(TargetCPU)-$(PlatformName)-vc$(VSVer)-$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<BrowseInformation>true</BrowseInformation>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<OutputFile>..\lib\$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration).lib</OutputFile>
|
||||
</Lib>
|
||||
<Link>
|
||||
<OutputFile Condition="'$(TargetExt)'=='.exe'">..\bin\$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration).exe</OutputFile>
|
||||
<GenerateWindowsMetadata Condition="'$(TargetExt)'=='.lib'">false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="VSVer">
|
||||
<Value>$(VSVer)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,6 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="CheckAPI">
|
||||
<Message Condition="'$(API_Family)'!='$(PROJ_Target)'" Text="Skipped project build"></Message>
|
||||
<CallTarget Condition="'$(API_Family)'=='$(PROJ_Target)'" Targets="Build"/>
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-common-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-debug-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-debug-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-common-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-release-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-release-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<TargetCPU>i386</TargetCPU>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/ignore:4221</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="TargetCPU">
|
||||
<Value>$(TargetCPU)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="pjproject-vs14-win32-common-defaults.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup />
|
||||
</Project>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue