- added ./autogen.sh
- proxy_rewrite_invitation_body: check success of starting RTP relay before rewriting SDP body - proxy_rewrite_invitation_body: don't fail on Contact header with no user part. - security_check_sip: CSeq header must be present.
This commit is contained in:
parent
ffdb50d4bd
commit
b2ef7599c8
@ -1,3 +1,12 @@
|
|||||||
|
0.5.5
|
||||||
|
=====
|
||||||
|
21-Mar-2004: - added ./autogen.sh
|
||||||
|
19-Mar-2004: - proxy_rewrite_invitation_body: check success of
|
||||||
|
starting RTP relay before rewriting SDP body
|
||||||
|
- proxy_rewrite_invitation_body: don't fail on
|
||||||
|
Contact header with no user part.
|
||||||
|
18-Mar-2004: - security_check_sip: CSeq header must be present.
|
||||||
|
|
||||||
0.5.4
|
0.5.4
|
||||||
=====
|
=====
|
||||||
6-Mar-2004: - Released 0.5.4
|
6-Mar-2004: - Released 0.5.4
|
||||||
|
|||||||
19
RELNOTES
19
RELNOTES
@ -1,9 +1,9 @@
|
|||||||
Release Notes for siproxd-0.5.4
|
Release Notes for siproxd-0.5.5
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
Major changes since 0.5.3:
|
Major changes since 0.5.4:
|
||||||
- minor documentation and FAQ updates
|
-
|
||||||
- some bugfixes in Proxy Authorization handling
|
-
|
||||||
|
|
||||||
General Overview:
|
General Overview:
|
||||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||||
@ -71,16 +71,9 @@ distribution I'd be happy to get a short notice.
|
|||||||
|
|
||||||
|
|
||||||
-----
|
-----
|
||||||
md5sum for siproxd-0.5.4.tar.gz: 7bbde9fb65a3285b125b4d208a0cdf62
|
md5sum for siproxd-0.5.5.tar.gz:
|
||||||
|
|
||||||
GnuPG signature for siproxd-0.5.4.tar.gz archive:
|
GnuPG signature for siproxd-0.5.5.tar.gz archive:
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.2.1 (GNU/Linux)
|
|
||||||
|
|
||||||
iD8DBQBASaprCfzBioe83JQRAswDAJ4rEERvkU0s3HHEnbuA1o44XykMhgCfVpG9
|
|
||||||
9JqbE3KKTC4/W72C9NUxUn8=
|
|
||||||
=LvlG
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
|
|
||||||
|
|
||||||
GnuPG: pub 1024D/87BCDC94 2000-03-19 Thomas Ries <tries@gmx.net>
|
GnuPG: pub 1024D/87BCDC94 2000-03-19 Thomas Ries <tries@gmx.net>
|
||||||
|
|||||||
13
autogen.sh
Executable file
13
autogen.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Run this to generate all the initial makefiles, etc.
|
||||||
|
|
||||||
|
test -f configure.in || {
|
||||||
|
echo "**Error**: This directory does not look like the top-level directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
aclocal
|
||||||
|
autoheader
|
||||||
|
automake -a
|
||||||
|
autoconf
|
||||||
@ -37,7 +37,7 @@ dnl Release Version
|
|||||||
dnl
|
dnl
|
||||||
SPD_MAJOR_VERSION=0
|
SPD_MAJOR_VERSION=0
|
||||||
SPD_MINOR_VERSION=5
|
SPD_MINOR_VERSION=5
|
||||||
SPD_MICRO_VERSION=4
|
SPD_MICRO_VERSION=5
|
||||||
|
|
||||||
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
|
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
|
||||||
|
|
||||||
|
|||||||
21
src/proxy.c
21
src/proxy.c
@ -963,17 +963,29 @@ if (configuration.debuglevel)
|
|||||||
|
|
||||||
if (msg_port > 0) {
|
if (msg_port > 0) {
|
||||||
osip_uri_t *cont_url = NULL;
|
osip_uri_t *cont_url = NULL;
|
||||||
char *user=NULL;
|
char *client_id=NULL;
|
||||||
|
/* try to get some additional UA specific unique ID.
|
||||||
|
* Try:
|
||||||
|
* 1) User part of Contact header
|
||||||
|
* 2) Host part of Contact header (will be different
|
||||||
|
* between internal UA and external UA)
|
||||||
|
*/
|
||||||
if (!osip_list_eol(mymsg->contacts, 0))
|
if (!osip_list_eol(mymsg->contacts, 0))
|
||||||
cont_url = ((osip_contact_t*)(mymsg->contacts->node->element))->url;
|
cont_url = ((osip_contact_t*)(mymsg->contacts->node->element))->url;
|
||||||
if (cont_url) user=cont_url->username;
|
if (cont_url) {
|
||||||
|
client_id=cont_url->username;
|
||||||
|
if (client_id == NULL) client_id=cont_url->host;
|
||||||
|
}
|
||||||
|
|
||||||
rtp_start_fwd(osip_message_get_call_id(mymsg),
|
|
||||||
user,
|
sts = rtp_start_fwd(osip_message_get_call_id(mymsg),
|
||||||
|
client_id,
|
||||||
rtp_direction,
|
rtp_direction,
|
||||||
media_stream_no,
|
media_stream_no,
|
||||||
map_addr, &map_port,
|
map_addr, &map_port,
|
||||||
msg_addr, msg_port);
|
msg_addr, msg_port);
|
||||||
|
|
||||||
|
if (sts == STS_SUCCESS) {
|
||||||
/* and rewrite the port */
|
/* and rewrite the port */
|
||||||
sdp_med=osip_list_get(sdp->m_medias, media_stream_no);
|
sdp_med=osip_list_get(sdp->m_medias, media_stream_no);
|
||||||
if (sdp_med && sdp_med->m_port) {
|
if (sdp_med && sdp_med->m_port) {
|
||||||
@ -986,6 +998,7 @@ if (configuration.debuglevel)
|
|||||||
ERROR("rewriting port in m= failed sdp_med=%p, "
|
ERROR("rewriting port in m= failed sdp_med=%p, "
|
||||||
"m_number_of_port=%p", sdp_med, sdp_med->m_port);
|
"m_number_of_port=%p", sdp_med, sdp_med->m_port);
|
||||||
}
|
}
|
||||||
|
} /* sts == success */
|
||||||
} /* if msg_port > 0 */
|
} /* if msg_port > 0 */
|
||||||
} else {
|
} else {
|
||||||
/* no port defined - skip entry */
|
/* no port defined - skip entry */
|
||||||
|
|||||||
@ -348,7 +348,7 @@ int rtp_relay_start_fwd (osip_call_id_t *callid, char *client_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_id == NULL) {
|
if (client_id == NULL) {
|
||||||
ERROR("rtp_relay_start_fwd: contact header is NULL!");
|
ERROR("rtp_relay_start_fwd: did not get a client ID!");
|
||||||
return STS_FAILURE;
|
return STS_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -83,39 +83,31 @@ int security_check_sip(osip_message_t *sip){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* check for existing To: header */
|
/* check for existing To: header */
|
||||||
if (sip->to == NULL) {
|
if ((sip->to==NULL)||(sip->to->url==NULL)||(sip->to->url->host==NULL)) {
|
||||||
ERROR("security check failed: NULL To Header");
|
ERROR("security check failed: NULL To Header");
|
||||||
return STS_FAILURE;
|
return STS_FAILURE;
|
||||||
}
|
}
|
||||||
/* check for existing To: URL */
|
|
||||||
if (sip->to->url == NULL) {
|
|
||||||
ERROR("security check failed: NULL To->url Header");
|
|
||||||
return STS_FAILURE;
|
|
||||||
}
|
|
||||||
/* check for existing TO URL host*/
|
|
||||||
if (sip->to->url->host == NULL) {
|
|
||||||
ERROR("security check failed: NULL To->url->host Header");
|
|
||||||
return STS_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check for existing FROM */
|
/* check for existing FROM */
|
||||||
if (sip->from == NULL) {
|
if ((sip->from==NULL)||(sip->from->url==NULL)||(sip->from->url->host==NULL)) {
|
||||||
ERROR("security check failed: NULL From Header");
|
ERROR("security check failed: NULL From Header");
|
||||||
return STS_FAILURE;
|
return STS_FAILURE;
|
||||||
}
|
}
|
||||||
/* check for existing FROM URL */
|
|
||||||
if (sip->from->url == NULL) {
|
/* check for existing CSEQ header */
|
||||||
ERROR("security check failed: NULL From->url Header");
|
if ((sip->cseq==NULL)||(sip->cseq->method==NULL)||(sip->cseq->number==NULL)) {
|
||||||
return STS_FAILURE;
|
ERROR("security check failed: NULL CSeq Header");
|
||||||
}
|
|
||||||
/* check for existing FROM URL host*/
|
|
||||||
if (sip->from->url->host == NULL) {
|
|
||||||
ERROR("security check failed: NULL From->url->host Header");
|
|
||||||
return STS_FAILURE;
|
return STS_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
check the RFC and implement tests for ALL mandatory headers here
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* TODO: still way to go here ... */
|
/* TODO: still way to go here ... */
|
||||||
return STS_SUCCESS;
|
return STS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,10 +73,12 @@ osip_message_t *msg_make_template_reply (osip_message_t * request, int code) {
|
|||||||
|
|
||||||
if (request->to==NULL) {
|
if (request->to==NULL) {
|
||||||
ERROR("msg_make_template_reply: empty To in request header");
|
ERROR("msg_make_template_reply: empty To in request header");
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request->from==NULL) {
|
if (request->from==NULL) {
|
||||||
ERROR("msg_make_template_reply: empty From in request header");
|
ERROR("msg_make_template_reply: empty From in request header");
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
osip_to_clone (request->to, &response->to);
|
osip_to_clone (request->to, &response->to);
|
||||||
@ -97,6 +99,7 @@ osip_message_t *msg_make_template_reply (osip_message_t * request, int code) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
osip_call_id_clone(request->call_id,&response->call_id);
|
osip_call_id_clone(request->call_id,&response->call_id);
|
||||||
|
|
||||||
osip_cseq_clone(request->cseq,&response->cseq);
|
osip_cseq_clone(request->cseq,&response->cseq);
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user