merge to sofia sip darcs tree. Includes multiple fixes and several merges of changes from the freeswitch tree back to darcs as follows:

Mon Nov 19 22:05:07 EST 2007  Pekka Pessi <first.lastname@nokia.com>
  * test_htable2.c: define struct before using it in prototypes

Fri Jan 11 09:12:01 EST 2008  Bernhard Suttner <suttner at comdasys.com>
  * Using # in SOATAG_HOLD to set media as inactive instead of sendonly

Fri Jan 11 09:15:18 EST 2008  Pekka.Pessi@nokia.com
  * soa_tag.c: documented SOATAG_HOLD() inactive mode

Fri Jan 11 09:28:46 EST 2008  Pekka.Pessi@nokia.com
  * su_addrinfo.c: if su_getaddrinfo() service is NULL, try both with "0" and NULL

Fri Jan 11 09:30:23 EST 2008  Pekka.Pessi@nokia.com
  * Makefile.am: added tests to DIST_SUBDIRS

Fri Jan 11 12:11:12 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: NetModule hack re-prioritizing SRV records
  
  Original hack by Stefan Leuenberger <Stefan.Leuenberger@netmodule.com>.
  
  The hack reprioritizes the SRV records used with transaction in case a
  server refuses connection or it does not answer.

Fri Jan 11 12:12:23 EST 2008  Pekka.Pessi@nokia.com
  * sres.c, sres_cache.c: NetModule hack for re-prioritizing SRV records
    
  Original hack by Stefan Leuenberger <Stefan.Leuenberger@netmodule.com>.
  
  The hack reprioritizes the SRV records used with transaction in case a
  server refuses connection or it does not answer.
  
  New functions sres_cache_set_srv_priority() and
  sres_set_cached_srv_priority().
  
Fri Jan 11 12:15:19 EST 2008  Pekka.Pessi@nokia.com
  * Makefile.am: fixed dist target

Fri Jan 11 12:19:33 EST 2008  Pekka.Pessi@nokia.com
  * tport_internal.h: grammar in doc

Mon Jan 14 06:59:17 EST 2008  Pekka.Pessi@nokia.com
  * su.h: IPv6 fix for Vista SDK
    
  Patch by Michael Jerris

Wed Jan 16 13:20:47 EST 2008  Pekka.Pessi@nokia.com
  * nua: fix sf.net bug #1867753 (avoid duplicating initial route set)

Thu Jan 17 07:48:10 EST 2008  Pekka.Pessi@nokia.com
  * sres.c, sres_cache.c: documented sres_set_cached_srv_priority(), sres_cache_set_srv_priority()

Thu Jan 17 07:51:32 EST 2008  Pekka.Pessi@nokia.com
  * sofia-sip/su_wait.h, su_port.h, su_root.c: documented new functions and types for 1.12.8

Thu Jan 17 07:52:03 EST 2008  Pekka.Pessi@nokia.com
  * sofia-sip/htable2.h: marked new features for release 1.12.8

Thu Jan 17 07:52:33 EST 2008  Pekka.Pessi@nokia.com
  * su_alloc.c: marked new features for release 1.12.8.

Thu Jan 17 07:53:01 EST 2008  Pekka.Pessi@nokia.com
  * AUTHORS: updated

Thu Jan 17 07:53:21 EST 2008  Pekka.Pessi@nokia.com
  * RELEASE: added new features and bug fixes since 1.12.7

Thu Jan 17 07:55:18 EST 2008  Pekka.Pessi@nokia.com
  * libsofia-sip-ua/docs/Doxyfile.aliases: added @NEW_1_12_8 and @VERSION_1_12_8

Thu Jan 17 09:48:48 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * autogen.sh: use automake 1.9 unless otherwise specified

Thu Jan 17 11:40:46 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * soa_static.c: cleaned inactive hold, added tests

Thu Jan 17 11:41:54 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * Makefile.am: added hide_emails.sh to dist

Thu Jan 17 11:42:35 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * nua_stack.c: removed noisy debug message from nua_client_request_sendmsg()

Fri Jan 18 11:06:10 EST 2008  Pekka.Pessi@nokia.com
  * nua: Added NUA_ERROR_AT() macro
  
  Made internally generated 900 (and 904) response phrases unique as suggested
  by Jerry Richards.

Mon Jan 21 10:39:50 EST 2008  Stefan Knoblich
  * TLS debug cleanup

Mon Jan 21 12:05:38 EST 2008  Pekka.Pessi@nokia.com
  * tport: build fixes from Freeswitch

Mon Jan 21 12:14:25 EST 2008  Pekka.Pessi@nokia.com
  * su_global_log.c: disable warning on SU_DEBUG[] (Doxygen-only variable)
  
  Patch from Michael Jerris.

Mon Jan 21 12:15:19 EST 2008  Pekka.Pessi@nokia.com
  * sres.c: default log level to the same as SU_DEBUG define
  
  Patch by Michael Jerris

Mon Jan 21 12:16:39 EST 2008  Pekka.Pessi@nokia.com
  * stun.c: default log level to the same as SU_DEBUG define
  
  Patch by Michael Jerris

Mon Jan 21 12:45:04 EST 2008  Stefan Knoblich
  * TLS debug cleanup, 2/2.
  
  Silence openssl messages, part 2 of 2. Changed to TPORT_DEBUG=1 (thanks
  MikeJ). This one converts all ERR_print_errors() calls

Mon Jan 21 13:00:49 EST 2008  Pekka.Pessi@nokia.com
  * nua: removed asserts() on hairy dialog/request handling cases

Mon Jan 21 14:06:35 EST 2008  Pekka.Pessi@nokia.com
  * soa.c: using session state in soa_set_activity()
  
  The media mode bits are set using (local) session description instead of
  remote offer/answer when O/A has been completed.

Mon Jan 21 14:08:08 EST 2008  Pekka.Pessi@nokia.com
  * soa_static.c: soa_sdp_mode_set() now includes wanted media state in offer
  
  The wanted media state is based on original user SDP and SOATAG_HOLD()
  content. Removed soa_sdp_mode_set_is_needed(), using dry-run parameter
  instead.
  
Mon Jan 21 14:09:11 EST 2008  Pekka.Pessi@nokia.com
  * nua_subnotref.c: fixed REFER re-try case
  
  REFER trashed its dialog when it got retried if there was no other dialog
  usages.

Mon Jan 21 14:20:31 EST 2008  Pekka.Pessi@nokia.com
  * nua_stack.c: return specific error phrases from nua_client_init_request()
  
  As suggested by Jerry Richards.

Tue Jan 22 11:15:04 EST 2008  Pekka.Pessi@nokia.com
  * sip_util.c: updated sip_response_terminates_dialog() as per RFC 5057.
  
  Changes handling of 423 in case of SUBSCRIBE.

Tue Jan 22 11:34:01 EST 2008  Pekka.Pessi@nokia.com
  * conformance.docs: added RFC 5057 (sipping-dialogusage)

Tue Jan 22 11:34:16 EST 2008  Pekka.Pessi@nokia.com
  * test_auth_digest.c: testing empty realm

Tue Jan 22 11:35:44 EST 2008  Pekka.Pessi@nokia.com
  * test_soa.c: testing hold with inactive, offered mode and setting remote activity flags while in hold

Tue Jan 22 12:27:41 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: fixed memory corruption in case sending ACK failed
  
  Thanks for Fabio Margarido for reporting this problem.

Tue Jan 22 12:49:02 EST 2008  Pekka.Pessi@nokia.com
  * nua/test_refer.c: run test_challenge_refer() only if we use proxy
  
  Test case is now more deterministic, too.

Tue Jan 22 12:51:59 EST 2008  Pekka.Pessi@nokia.com
  * docs/Makefile.am, docs/conformance.docs: fixed links to RFC 5057.

Tue Jan 22 13:57:38 EST 2008  Pekka.Pessi@nokia.com
  * sres: added ttl parameter to sres_set_cached_srv_priority() and sres_cache_set_srv_priority().

Tue Jan 22 13:59:44 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: added NTATAG_GRAYLIST(). 
  
  Use NTATAG_GRAYLIST() as ttl value for sres_set_cached_srv_priority().

Tue Jan 22 14:04:29 EST 2008  Pekka.Pessi@nokia.com
  * RELEASE: updated.

Tue Jan 22 14:04:29 EST 2008  Pekka.Pessi@nokia.com
  * RELEASE: updated.

Wed Jan 23 06:56:11 EST 2008  Pekka.Pessi@nokia.com
  * sip_extra.c, sip_parser.c: updated documentation

Wed Jan 23 09:47:50 EST 2008  Pekka.Pessi@nokia.com
  * test_nta.c: fixed receiving with sink socket

Wed Jan 23 10:07:30 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * soa_static.c: fixed signedness error

Wed Jan 23 10:11:14 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * win32 project files: fixed slash direction

Wed Jan 23 10:13:00 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * torture_su.c: set blocking on

Wed Jan 23 10:13:36 EST 2008  Pekka Pessi <Pekka.Pessi@nokia.com>
  * test_tport.c: using blocking sockets in test_incomplete()

Wed Jan 23 11:01:11 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: now using RFC3261-compliant dialog-matching

Wed Jan 23 11:05:23 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: ignore tags in nta_leg_by_dialog() if they are empty strings

Wed Jan 23 11:05:58 EST 2008  Pekka.Pessi@nokia.com
  * nta.c: asserting in proper place when handling queue tail

Wed Jan 23 12:11:09 EST 2008  Pekka.Pessi@nokia.com
  * torture_sip.c: added tests for accessing other extra headers beside P-Asserted-Identity/P-Preferred-Identity

Wed Jan 23 13:08:55 EST 2008  Pekka.Pessi@nokia.com
  * nua: terminate dialog when redirected and re-establish it with new request

Wed Jan 23 13:18:16 EST 2008  Pekka.Pessi@nokia.com
  * test_100rel.c: added test for redirect after 100rel response.




git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7328 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris committed 2008-01-23 18:37:33 +00:00
1 parent c7b311fdcd
commit da29143b60
75 files changed
+1976 -727

No files matched your search

+51 -12
View File
@@ -220,9 +220,13 @@ issize_t sip_error_info_e(char b[], isize_t bsiz, sip_header_t const *h, int f)
*
* The parsed Alert-Info header is stored in #sip_alert_info_t structure.
*
* @NEW_1_12_7. In order to use @b Alert-Info header,
* initialize the SIP parser with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL))
* @NEW_1_12_7. In order to use @b Alert-Info header, initialize the SIP
* parser before calling nta_agent_create() or nua_create() with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* The #sip_t structure does not contain a @a sip_alert_info field, but
* sip_alert_info() function should be used for accessing the @b Alert-Info
* header structure.
*/
/**@ingroup sip_alert_info
@@ -283,8 +287,14 @@ issize_t sip_alert_info_e(char b[], isize_t bsiz, sip_header_t const *h, int f)
* @sa sip_update_default_mclass()
*
* @NEW_1_12_7. In order to use @b Reply-To header,
* initialize the SIP parser with, e.g.,
* initialize the SIP parser before calling nta_agent_create() or
* nua_create() with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t structure does not contain a @a sip_reply_to field, but
* sip_reply_to() function should be used for accessing the @b Reply-To
* header structure.
*/
/**@ingroup sip_reply_to
@@ -933,7 +943,13 @@ char *sip_info_dup_one(sip_header_t *dst,
*
* @sa @RFC3265, draft-niemi-sip-subnot-etags-01.txt
*
* @EXP_1_12_5. Note that #sip_t does not contain @a
* @EXP_1_12_5.
* In order to use @b Suppress-Body-If-Match header,
* initialize the SIP parser with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t structure does not contain a @a
* sip_suppress_body_if_match field, but sip_suppress_body_if_match()
* function should be used for accessing the @b Suppress-Body-If-Match
* header structure.
@@ -999,10 +1015,15 @@ issize_t sip_suppress_body_if_match_e(char b[], isize_t bsiz,
*
* @sa @RFC3265, draft-niemi-sip-subnot-etag-01
*
* @EXP_1_12_5. Note that #sip_t does not contain @a
* sip_suppress_notify_if_match field, but sip_suppress_notify_if_match()
* function should be used for accessing the @b Suppress-Notify-If-Match
* header structure.
* @EXP_1_12_5.
* In order to use @b Suppress-Notify-If-Match header,
* initialize the SIP parser with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t struct does not contain @a sip_suppress_notify_if_match field,
* but sip_suppress_notify_if_match() function should be used for accessing
* the @b Suppress-Notify-If-Match header structure.
*/
/**@ingroup sip_suppress_notify_if_match
@@ -1085,8 +1106,14 @@ issize_t sip_suppress_notify_if_match_e(char b[], isize_t bsiz,
* @sa sip_update_default_mclass(), draft-ietf-sip-privacy-04.txt, @RFC3325
*
* @NEW_1_12_7. In order to use @b Remote-Party-ID header,
* initialize the SIP parser with, e.g.,
* initialize the SIP parser before calling nta_agent_create() or
* nua_create() with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t structure does not contain @a sip_remote_party_id field, but
* sip_remote_party_id() function should be used for accessing the @b
* Remote-Party-ID header structure.
*/
/**@ingroup sip_remote_party_id
@@ -1222,8 +1249,14 @@ static int sip_remote_party_id_update(msg_common_t *h,
* @sa @RFC3325, @PPreferredIdentity
*
* @NEW_1_12_7. In order to use @b P-Asserted-Identity header,
* initialize the SIP parser with, e.g.,
* initialize the SIP parser before calling nta_agent_create() or
* nua_create() with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t structure does not contain @a sip_p_asserted_identity field,
* but sip_p_asserted_identity() function should be used for accessing the
* @b P-Asserted-Identity header structure.
*/
/**@ingroup sip_p_asserted_identity
@@ -1325,8 +1358,14 @@ char *sip_p_asserted_identity_dup_one(sip_header_t *dst,
* @sa @RFC3325, @PAssertedIdentity
*
* @NEW_1_12_7. In order to use @b P-Preferred-Identity header,
* initialize the SIP parser with, e.g.,
* initialize the SIP parser before calling nta_agent_create() or
* nua_create() with, e.g.,
* sip_update_default_mclass(sip_extend_mclass(NULL)).
*
* @note
* The #sip_t structure does not contain @a sip_p_preferred_identity field,
* but sip_p_preferred_identity() function should be used for accessing the
* @b P-Preferred-Identity header structure.
*/
/**@ingroup sip_p_preferred_identity
@@ -90,6 +90,8 @@ msg_mclass_t const *sip_default_mclass(void)
* @retval 0 when successful
* @retval -1 upon an error
*
* @sa sip_extend_mclass()
*
* @NEW_1_12_7.
*/
int sip_update_default_mclass(msg_mclass_t const *mclass)
@@ -103,12 +105,22 @@ int sip_update_default_mclass(msg_mclass_t const *mclass)
/**Extend SIP parser class with extension headers.
*
* Extend given SIP parser class with extension headers. If the given parser
* class is the default one or NULL, make a clone of it before extending it.
* (message class) is the default one or NULL, make a clone of default
* parser before extending it.
*
* @param input pointer to a SIP message class (may be NULL)
*
* @return Pointer to extended mclass, or NULL upon an error.
*
* @sa
* @AlertInfo,
* @ReplyTo,
* @RemotePartyId,
* @PAssertedIdentity,
* @PPreferredIdentity,
* @SuppressBodyIfMatch,
* @SuppressNotifyIfMatch
*
* @NEW_1_12_7.
*/
msg_mclass_t *sip_extend_mclass(msg_mclass_t *input)
@@ -883,8 +883,7 @@ sip_security_client_select(sip_security_client_t const *client,
* decide whether to gracefully terminate or not, the
* @a *return_graceful_terminate_usage is left unmodified.
*
* @sa
* http://www.ietf.org/internet-drafts/draft-ietf-sipping-dialogusage-02.txt
* @RFC 5057
*/
int sip_response_terminates_dialog(int response_code,
sip_method_t method,
@@ -1060,8 +1059,6 @@ int sip_response_terminates_dialog(int response_code,
usage in an existing dialog, no new usage is created and existing
usages are unaffected.
*/
*return_graceful_terminate_usage = 0;
return 0;
case 423: /** @par 423 Interval Too Brief
@@ -1070,8 +1067,6 @@ int sip_response_terminates_dialog(int response_code,
subscribe usage is not destroyed (or otherwise affected). No
other usages of the dialog are affected.
*/
*return_graceful_terminate_usage = 0;
return sip_method_subscribe == method ? terminate_usage : no_effect;
case 428: /** @par 428 Use Identity Header
@@ -1079,8 +1074,6 @@ int sip_response_terminates_dialog(int response_code,
the usage. The usage is not affected. The dialog is only
affected by a change in its local @CSeq. No other usages of the
dialog are affected. */
*return_graceful_terminate_usage = 0;
return 0;
case 429: /** @par 429 Provide Referrer Identity
@@ -77,6 +77,9 @@ static msg_t *read_message(int flags, char const string[]);
static int test_identity(void)
{
su_home_t *home;
sip_alert_info_t *ai;
sip_reply_to_t *rplyto;
sip_remote_party_id_t *rpid;
sip_p_asserted_identity_t *paid;
sip_p_preferred_identity_t *ppid;
@@ -115,15 +118,21 @@ static int test_identity(void)
"Call-ID: 0ha0isndaksdj@10.1.2.3\r\n"
"CSeq: 8 SUBSCRIBE\r\n"
"Via: SIP/2.0/UDP 135.180.130.133\r\n"
"Alert-Info: <http://test.com/tune>;walz, <http://test.com/buzz>\r\n"
"Reply-To: Arska <sip:arska@gov.ca.us>;humppa\r\n"
"P-Asserted-Identity: <sip:test@test.domain.com>\r\n"
"P-Preferred-Identity: <sip:test@test.domain.com>, <tel:+358708008000>\r\n"
"Remote-Party-ID: <sip:test2@test.domain.com>\r\n"
"Content-Length: 0\r\n"
"\r\n");
sip = sip_object(msg);
TEST_1(!sip_alert_info(sip));
TEST_1(!sip_reply_to(sip));
TEST_1(!sip_p_asserted_identity(sip));
TEST_1(!sip_p_preferred_identity(sip));
TEST_1(!sip_remote_party_id(sip));
msg_destroy(msg);
@@ -139,13 +148,22 @@ static int test_identity(void)
"Call-ID: 0ha0isndaksdj@10.1.2.3\r\n"
"CSeq: 8 SUBSCRIBE\r\n"
"Via: SIP/2.0/UDP 135.180.130.133\r\n"
"Alert-Info: <http://test.com/tune>;walz, <http://test.com/buzz>\r\n"
"Reply-To: Arska <sip:arska@gov.ca.us>;humppa\r\n"
"P-Asserted-Identity: <sip:test@test.domain.com>\r\n"
"P-Preferred-Identity: <sip:test@test.domain.com>, <tel:+358708008000>\r\n"
"Remote-Party-ID: <sip:test2@test.domain.com>\r\n"
"Content-Length: 0\r\n"
"\r\n");
sip = sip_object(msg);
TEST_1(!sip_alert_info(sip));
TEST_1(!sip_reply_to(sip));
TEST_1(sip_p_asserted_identity(sip));
TEST_1(sip_p_preferred_identity(sip));
TEST_1(!sip_remote_party_id(sip));
TEST_1(home = msg_home(msg));
TEST_1((paid = sip_p_asserted_identity_make(home, "sip:joe@example.com")));
@@ -161,6 +179,34 @@ static int test_identity(void)
/* Now with extensions */
TEST_1(test_mclass = msg_mclass_clone(def1, 0, 0));
msg = read_message(MSG_DO_EXTRACT_COPY,
"BYE sip:foo@bar SIP/2.0\r\n"
"To: <sip:foo@bar>;tag=deadbeef\r\n"
"From: <sip:bar@foo>;\r\n"
"Call-ID: 0ha0isndaksdj@10.1.2.3\r\n"
"CSeq: 8 SUBSCRIBE\r\n"
"Via: SIP/2.0/UDP 135.180.130.133\r\n"
"Alert-Info: <http://test.com/tune>;walz, <http://test.com/buzz>\r\n"
"Reply-To: Arska <sip:arska@gov.ca.us>;humppa\r\n"
"P-Asserted-Identity: <sip:test@test.domain.com>\r\n"
"P-Preferred-Identity: <sip:test@test.domain.com>, <tel:+358708008000>\r\n"
"Remote-Party-ID: <sip:test2@test.domain.com>\r\n"
"Content-Length: 0\r\n"
"\r\n");
sip = sip_object(msg);
TEST_1(ai = sip_alert_info(sip));
TEST_S(ai->ai_url->url_host, "test.com");
TEST_1(rplyto = sip_reply_to(sip));
TEST_S(rplyto->rplyto_url->url_host, "gov.ca.us");
TEST_1(paid = sip_p_asserted_identity(sip));
TEST_1(ppid = sip_p_preferred_identity(sip));
TEST_1(rpid = sip_remote_party_id(sip));
TEST_S(rpid->rpid_url->url_host, "test.domain.com");
msg_destroy(msg);
{
su_home_t *home = su_home_clone(NULL, sizeof *home);