[asterisk-commits] oej: branch oej/jasmin-remote-hold-1.8 r385825 - in /team/oej/jasmin-remote-h...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Apr 16 03:11:54 CDT 2013


Author: oej
Date: Tue Apr 16 03:11:52 2013
New Revision: 385825

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=385825
Log:
Resetting this sad branch

Modified:
    team/oej/jasmin-remote-hold-1.8/   (props changed)
    team/oej/jasmin-remote-hold-1.8/BSDmakefile   (props changed)
    team/oej/jasmin-remote-hold-1.8/Makefile
    team/oej/jasmin-remote-hold-1.8/apps/app_saycounted.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/build_tools/sha1sum-sh   (props changed)
    team/oej/jasmin-remote-hold-1.8/channels/chan_multicast_rtp.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/channels/chan_sip.c
    team/oej/jasmin-remote-hold-1.8/channels/sig_ss7.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/channels/sig_ss7.h   (props changed)
    team/oej/jasmin-remote-hold-1.8/channels/sip/include/sip.h
    team/oej/jasmin-remote-hold-1.8/configs/res_curl.conf.sample   (props changed)
    team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/musiconhold.sql   (props changed)
    team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/queue_log.sql   (props changed)
    team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/voicemail_data.sql   (props changed)
    team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/voicemail_messages.sql   (props changed)
    team/oej/jasmin-remote-hold-1.8/doc/Makefile   (props changed)
    team/oej/jasmin-remote-hold-1.8/include/asterisk/bridging_features.h   (props changed)
    team/oej/jasmin-remote-hold-1.8/include/asterisk/bridging_technology.h   (props changed)
    team/oej/jasmin-remote-hold-1.8/include/asterisk/select.h   (props changed)
    team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c   (contents, props changed)
    team/oej/jasmin-remote-hold-1.8/res/res_rtp_multicast.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/res/res_timing_kqueue.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/tests/test_expr.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/tests/test_func_file.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/tests/test_locale.c   (props changed)
    team/oej/jasmin-remote-hold-1.8/tests/test_poll.c   (props changed)

Propchange: team/oej/jasmin-remote-hold-1.8/
------------------------------------------------------------------------------
    automerge = Is-there-life-off-net?

Propchange: team/oej/jasmin-remote-hold-1.8/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-/branches/1.8:1-385674
+/branches/1.8:1-385824

Propchange: team/oej/jasmin-remote-hold-1.8/BSDmakefile
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Modified: team/oej/jasmin-remote-hold-1.8/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/oej/jasmin-remote-hold-1.8/Makefile?view=diff&rev=385825&r1=385824&r2=385825
==============================================================================
--- team/oej/jasmin-remote-hold-1.8/Makefile (original)
+++ team/oej/jasmin-remote-hold-1.8/Makefile Tue Apr 16 03:11:52 2013
@@ -289,7 +289,7 @@
 	@echo " +               $(mK) install               +"  
 	@echo " +-------------------------------------------+"  
 
-_all: cleantest makeopts $(SUBDIRS) doc/core-en_US.xml
+_all: .lastclean makeopts $(SUBDIRS) doc/core-en_US.xml
 
 makeopts: configure
 	@echo "****"
@@ -350,31 +350,30 @@
 $(OTHER_SUBDIRS):
 	+ at _ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(_ASTCFLAGS)" ASTCFLAGS="$(ASTCFLAGS)" _ASTLDFLAGS="$(_ASTLDFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
 
-defaults.h: makeopts cleantest
+defaults.h: makeopts .lastclean
 	@build_tools/make_defaults_h > $@.tmp
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
 	@rm -f $@.tmp
 
-main/version.c: FORCE cleantest
+main/version.c: FORCE .lastclean
 	@build_tools/make_version_c > $@.tmp
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
 	@rm -f $@.tmp
 
-include/asterisk/version.h: FORCE cleantest
+include/asterisk/version.h: FORCE .lastclean
 	@build_tools/make_version_h > $@.tmp
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
 	@rm -f $@.tmp
 
-include/asterisk/buildopts.h: menuselect.makeopts cleantest
+include/asterisk/buildopts.h: menuselect.makeopts .lastclean
 	@build_tools/make_buildopts_h > $@.tmp
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
 	@rm -f $@.tmp
 
-# build.h must depend on cleantest, or parallel make may wipe it out after it's
-# been created. But since build.h contains a timestamp, the cmp trick used above
-# won't work. Just testing for existence is good enough.
-include/asterisk/build.h: cleantest
-	@test -f $@ || build_tools/make_build_h > $@
+# build.h must depend on .lastclean, or parallel make may wipe it out after it's
+# been created.
+include/asterisk/build.h: .lastclean
+	@build_tools/make_build_h > $@
 
 $(SUBDIRS_CLEAN):
 	+@$(SUBMAKE) -C $(@:-clean=) clean
@@ -421,7 +420,7 @@
 	done
 	$(MAKE) -C sounds install
 
-doc/core-en_US.xml: cleantest $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
+doc/core-en_US.xml: .lastclean $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
 	@printf "Building Documentation For: "
 	@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
 	@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
@@ -762,8 +761,8 @@
 # .cleancount is the global clean count, and .lastclean is the 
 # last clean count we had
 
-cleantest:
-	@cmp -s .cleancount .lastclean || $(MAKE) clean
+.lastclean: .cleancount
+	@$(MAKE) clean
 
 $(SUBDIRS_UNINSTALL):
 	+@$(SUBMAKE) -C $(@:-uninstall=) uninstall
@@ -876,7 +875,6 @@
 .PHONY: distclean
 .PHONY: all
 .PHONY: prereqs
-.PHONY: cleantest
 .PHONY: uninstall
 .PHONY: _uninstall
 .PHONY: uninstall-all

Propchange: team/oej/jasmin-remote-hold-1.8/apps/app_saycounted.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/build_tools/sha1sum-sh
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/channels/chan_multicast_rtp.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Modified: team/oej/jasmin-remote-hold-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/jasmin-remote-hold-1.8/channels/chan_sip.c?view=diff&rev=385825&r1=385824&r2=385825
==============================================================================
--- team/oej/jasmin-remote-hold-1.8/channels/chan_sip.c (original)
+++ team/oej/jasmin-remote-hold-1.8/channels/chan_sip.c Tue Apr 16 03:11:52 2013
@@ -1319,6 +1319,7 @@
 				struct ast_str **m_buf, struct ast_str **a_buf,
 				int debug);
 static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int oldsdp, int add_audio, int add_t38);
+
 static void do_setnat(struct sip_pvt *p);
 static void stop_media_flows(struct sip_pvt *p);
 
@@ -7353,12 +7354,39 @@
 		res = -1;
 		break;
 	case AST_CONTROL_HOLD:
-		ast_rtp_instance_update_source(p->rtp);
-		ast_moh_start(ast, data, p->mohinterpret);
+		if(ast_test_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD)) {
+			if (ast_test_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS)) {
+				/* We are already put on hold, can't be more on hold */
+				ast_debug(1, "--- HOLD - Double hold???? \n");
+			} else {
+				/* Send re-invite and put the call on hold */
+				ast_set_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS);
+				ast_debug(1, "--- HOLD - Activated remote hold \n");
+				if (T38_ENABLED == p->t38.state) {
+					transmit_reinvite_with_sdp(p, TRUE, TRUE);
+				} else {
+					transmit_reinvite_with_sdp(p, FALSE, TRUE);
+				}
+			}
+		} else {
+			ast_rtp_instance_update_source(p->rtp);
+			ast_moh_start(ast, data, p->mohinterpret);
+		}
 		break;
 	case AST_CONTROL_UNHOLD:
-		ast_rtp_instance_update_source(p->rtp);
-		ast_moh_stop(ast);
+		if(ast_test_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS)) {
+			/* Send re-invite and put the call off hold */
+			ast_clear_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS);
+			ast_debug(1, "--- HOLD - cleared remote hold \n");
+			if (T38_ENABLED == p->t38.state) {
+				transmit_reinvite_with_sdp(p, TRUE, TRUE);
+			} else {
+				transmit_reinvite_with_sdp(p, FALSE, TRUE);
+			}
+		} else {
+			ast_rtp_instance_update_source(p->rtp);
+			ast_moh_stop(ast);
+		}
 		break;
 	case AST_CONTROL_VIDUPDATE:	/* Request a video frame update */
 		if (p->vrtp && !p->novideo) {
@@ -9110,20 +9138,66 @@
 	return FALSE;
 }
 
-/*! \brief Change hold state for a call */
+/*! \brief Change hold state for a call 
+	We can get a hold state both as a response to our offer or in an offer 
+	\para holdstate TRUE if we're put off hold by peer
+*/
 static void change_hold_state(struct sip_pvt *dialog, struct sip_request *req, int holdstate, int sendonly)
 {
-	if (sip_cfg.notifyhold && (!holdstate || !ast_test_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD)))
+	char *hold ="Off";
+	char *holdtype = "None";	/* Local, Remote, Both, None */
+	
+	/* Figure out our total hold state
+		sendonly indicates the change
+
+		3 = accept of our remote hold
+		0 = Other side put us off hold
+		1 = Other side put us on hold
+		2 = Other side made us inactive
+	*/
+	if (ast_test_flag(&dialog->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS)) {
+		/* We have put them on hold */
+		if (sendonly == 0) {
+			hold = "On";
+			holdtype = "Local";
+		} else if (sendonly == 1 || sendonly == 2) {
+			hold = "On";
+			holdtype = "Both";
+		}
+		ast_log(LOG_DEBUG, "--- Remote hold and hold %s type %s sendonly %d\n", hold, holdtype, sendonly);
+	} else {
+		/* We have no hold */
+		if (sendonly == 0) {
+			hold = "Off";
+			holdtype = "None";
+		} else if (sendonly == 1 || sendonly == 2) {
+			hold  = "On";
+			holdtype = "Remote";
+		}
+		ast_log(LOG_DEBUG, "--- Hold %s type %s sendonly %d\n", hold, holdtype, sendonly);
+	}
+	
+
+	if (sip_cfg.notifyhold && (!holdstate || !ast_test_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD))) {
+		/* XXX Check this for remote hold */
 		sip_peer_hold(dialog, holdstate);
-	if (sip_cfg.callevents)
+	}
+	if (sip_cfg.callevents) {
 		manager_event(EVENT_FLAG_CALL, "Hold",
 			      "Status: %s\r\n"
+			      "Holdtype: %s\r\n"
 			      "Channel: %s\r\n"
 			      "Uniqueid: %s\r\n",
-			      holdstate ? "On" : "Off",
+			      hold,
+			      holdtype,
 			      dialog->owner->name,
 			      dialog->owner->uniqueid);
-	append_history(dialog, holdstate ? "Hold" : "Unhold", "%s", ast_str_buffer(req->data));
+	}
+	append_history(dialog, "Hold", "%s %s", holdtype, ast_str_buffer(req->data));
+	if (sendonly == 3) {
+		return;
+	}
+
 	if (!holdstate) {	/* Put off remote hold */
 		ast_clear_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD);	/* Clear both flags */
 		return;
@@ -9137,7 +9211,7 @@
 		ast_set_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD_ONEDIR);
 	else if (sendonly == 2)	/* Inactive stream */
 		ast_set_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD_INACTIVE);
-	else
+	else if (sendonly == 0)	/* We're back from peer hold */
 		ast_set_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD_ACTIVE);
 	return;
 }
@@ -9211,7 +9285,7 @@
 	return ast_sockaddr_isnull(addr) || ast_sockaddr_is_any(addr);
 }
 
-/*! \brief Process SIP SDP offer, select formats and activate media channels
+/*! \brief Process SIP SDP offer/answer, select formats and activate media channels
 	If offer is rejected, we will not change any properties of the call
  	Return 0 on success, a negative value on errors.
 	Must be called after find_sdp().
@@ -9885,11 +9959,13 @@
 	}
 
 	if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) && (!ast_sockaddr_isnull(sa) || !ast_sockaddr_isnull(vsa) || !ast_sockaddr_isnull(tsa) || !ast_sockaddr_isnull(isa)) && (!sendonly || sendonly == -1)) {
+		/* If we have been on hold and is now put off hold, make sure the other side understand it */
 		ast_queue_control(p->owner, AST_CONTROL_UNHOLD);
 		/* Activate a re-invite */
 		ast_queue_frame(p->owner, &ast_null_frame);
 		change_hold_state(p, req, FALSE, sendonly);
 	} else if ((sockaddr_is_null_or_any(sa) && sockaddr_is_null_or_any(vsa) && sockaddr_is_null_or_any(tsa) && sockaddr_is_null_or_any(isa)) || (sendonly && sendonly != -1)) {
+		/* We are put on hold by the other end */
 		ast_queue_control_data(p->owner, AST_CONTROL_HOLD,
 				       S_OR(p->mohsuggest, NULL),
 				       !ast_strlen_zero(p->mohsuggest) ? strlen(p->mohsuggest) + 1 : 0);
@@ -9899,6 +9975,8 @@
 		/* Activate a re-invite */
 		ast_queue_frame(p->owner, &ast_null_frame);
 		change_hold_state(p, req, TRUE, sendonly);
+	} else if (sendonly == 3) {
+		change_hold_state(p, req, FALSE, sendonly);
 	}
 
 	return 0;
@@ -10025,6 +10103,11 @@
 	}  else if (!strcasecmp(a, "sendrecv")) {
 		if (*sendonly == -1)
 			*sendonly = 0;
+		found = TRUE;
+	}  else if (!strcasecmp(a, "recvonly")) {
+		/* We have put their side on hold */
+		if (*sendonly == -1)
+			*sendonly = 3;
 		found = TRUE;
 	}
 	return found;
@@ -11864,14 +11947,34 @@
 		 ast_sockaddr_stringify_addr_remote(&dest));
 
 	if (add_audio) {
-		if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_ONEDIR) {
-			hold = "a=recvonly\r\n";
-			doing_directmedia = FALSE;
-		} else if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_INACTIVE) {
-			hold = "a=inactive\r\n";
-			doing_directmedia = FALSE;
+		/* The SIP_PAGE2_CALL_ONHOLD flag indicates if the other party has put us on hold or inactive. 
+ 		   The SIP_PAGE3_REMOTE_HOLD_STATUS flag indicates if we have put them on hold or not.
+		 */
+		if (ast_test_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD) && ast_test_flag(&p->flags[2], SIP_PAGE3_REMOTE_HOLD_STATUS)) {
+			/* We have put the channel on hold */
+			if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_ONEDIR) {
+				/* They have too */
+				hold = "a=inactive\r\n";
+				doing_directmedia = FALSE;
+			} else if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_INACTIVE) {
+				/* They have declared us inactive. We too */
+				hold = "a=inactive\r\n";
+				doing_directmedia = FALSE;
+			} else {
+				/* We put them on hold now */
+				hold = "a=sendonly\r\n";
+				doing_directmedia = FALSE;
+			}
 		} else {
-			hold = "a=sendrecv\r\n";
+			if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_ONEDIR) {
+				hold = "a=recvonly\r\n";
+				doing_directmedia = FALSE;
+			} else if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_INACTIVE) {
+				hold = "a=inactive\r\n";
+				doing_directmedia = FALSE;
+			} else {
+				hold = "a=sendrecv\r\n";
+			}
 		}
 
 		capability = p->jointcapability;
@@ -12342,6 +12445,53 @@
 	return 1;
 }
 
+
+/* \brief Remove URI parameters at end of URI, not in username part though */
+static char *remove_uri_parameters(char *uri)
+{
+	char *atsign;
+	atsign = strchr(uri, '@');	/* First, locate the at sign */
+	if (!atsign) {
+		atsign = uri;	/* Ok hostname only, let's stick with the rest */
+	}
+	atsign = strchr(atsign, ';');	/* Locate semi colon */
+	if (atsign)
+		*atsign = '\0';	/* Kill at the semi colon */
+	return uri;
+}
+
+/*! \brief Check Contact: URI of SIP message */
+static void extract_uri(struct sip_pvt *p, struct sip_request *req)
+{
+	char stripped[SIPBUFSIZE];
+	char *c;
+
+	ast_copy_string(stripped, get_header(req, "Contact"), sizeof(stripped));
+	c = get_in_brackets(stripped);
+	/* Cut the URI at the at sign after the @, not in the username part */
+	c = remove_uri_parameters(c);
+	if (!ast_strlen_zero(c)) {
+		ast_string_field_set(p, uri, c);
+	}
+
+}
+
+/*! \brief Build contact header - the contact header we send out */
+static void build_contact(struct sip_pvt *p)
+{
+	char tmp[SIPBUFSIZE];
+	char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), 0);
+
+	if (p->socket.type == SIP_TRANSPORT_UDP) {
+		ast_string_field_build(p, our_contact, "<sip:%s%s%s>", user,
+			ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify_remote(&p->ourip));
+	} else {
+		ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", user,
+			ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify_remote(&p->ourip),
+			get_transport(p->socket.type));
+	}
+}
+
 /*! \brief Transmit reinvite with SDP
 \note 	A re-invite is basically a new INVITE with the same CALL-ID and TAG as the
 	INVITE that opened the SIP dialogue
@@ -12393,51 +12543,6 @@
 	return send_request(p, &req, XMIT_CRITICAL, p->ocseq);
 }
 
-/* \brief Remove URI parameters at end of URI, not in username part though */
-static char *remove_uri_parameters(char *uri)
-{
-	char *atsign;
-	atsign = strchr(uri, '@');	/* First, locate the at sign */
-	if (!atsign) {
-		atsign = uri;	/* Ok hostname only, let's stick with the rest */
-	}
-	atsign = strchr(atsign, ';');	/* Locate semi colon */
-	if (atsign)
-		*atsign = '\0';	/* Kill at the semi colon */
-	return uri;
-}
-
-/*! \brief Check Contact: URI of SIP message */
-static void extract_uri(struct sip_pvt *p, struct sip_request *req)
-{
-	char stripped[SIPBUFSIZE];
-	char *c;
-
-	ast_copy_string(stripped, get_header(req, "Contact"), sizeof(stripped));
-	c = get_in_brackets(stripped);
-	/* Cut the URI at the at sign after the @, not in the username part */
-	c = remove_uri_parameters(c);
-	if (!ast_strlen_zero(c)) {
-		ast_string_field_set(p, uri, c);
-	}
-
-}
-
-/*! \brief Build contact header - the contact header we send out */
-static void build_contact(struct sip_pvt *p)
-{
-	char tmp[SIPBUFSIZE];
-	char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), 0);
-
-	if (p->socket.type == SIP_TRANSPORT_UDP) {
-		ast_string_field_build(p, our_contact, "<sip:%s%s%s>", user,
-			ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify_remote(&p->ourip));
-	} else {
-		ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", user,
-			ast_strlen_zero(user) ? "" : "@", ast_sockaddr_stringify_remote(&p->ourip),
-			get_transport(p->socket.type));
-	}
-}
 
 /*! \brief Initiate new SIP request to peer/user */
 static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, const char * const explicit_uri)
@@ -27629,6 +27734,9 @@
 	} else if (!strcasecmp(v->name, "buggymwi")) {
 		ast_set_flag(&mask[1], SIP_PAGE2_BUGGY_MWI);
 		ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_BUGGY_MWI);
+	} else if (!strcasecmp(v->name, "remotehold")) {
+		ast_set_flag(&mask[2], SIP_PAGE3_REMOTE_HOLD);
+		ast_set2_flag(&flags[2], ast_true(v->value), SIP_PAGE3_REMOTE_HOLD);
 	} else
 		res = 0;
 

Propchange: team/oej/jasmin-remote-hold-1.8/channels/sig_ss7.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/channels/sig_ss7.h
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Modified: team/oej/jasmin-remote-hold-1.8/channels/sip/include/sip.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/jasmin-remote-hold-1.8/channels/sip/include/sip.h?view=diff&rev=385825&r1=385824&r2=385825
==============================================================================
--- team/oej/jasmin-remote-hold-1.8/channels/sip/include/sip.h (original)
+++ team/oej/jasmin-remote-hold-1.8/channels/sip/include/sip.h Tue Apr 16 03:11:52 2013
@@ -329,10 +329,10 @@
 #define SIP_PAGE2_T38SUPPORT_UDPTL_FEC      (2 << 17)   /*!< GDP: T.38 Fax Support (FEC error correction) */
 #define SIP_PAGE2_T38SUPPORT_UDPTL_REDUNDANCY   (3 << 17)   /*!< GDP: T.38 Fax Support (redundancy error correction) */
 
-#define SIP_PAGE2_CALL_ONHOLD               (3 << 19)   /*!< D: Call hold states: */
-#define SIP_PAGE2_CALL_ONHOLD_ACTIVE        (1 << 19)   /*!< D: Active hold */
-#define SIP_PAGE2_CALL_ONHOLD_ONEDIR        (2 << 19)   /*!< D: One directional hold */
-#define SIP_PAGE2_CALL_ONHOLD_INACTIVE      (3 << 19)   /*!< D: Inactive hold */
+#define SIP_PAGE2_CALL_ONHOLD               (3 << 19)   /*!< D: Call hold states: Incoming hold */
+#define SIP_PAGE2_CALL_ONHOLD_ACTIVE        (1 << 19)   /*!< D: Active hold  Incoming hold*/
+#define SIP_PAGE2_CALL_ONHOLD_ONEDIR        (2 << 19)   /*!< D: One directional hold  Incoming hold*/
+#define SIP_PAGE2_CALL_ONHOLD_INACTIVE      (3 << 19)   /*!< D: Inactive hold  Incoming hold*/
 
 #define SIP_PAGE2_RFC2833_COMPENSATE        (1 << 21)   /*!< DP: Compensate for buggy RFC2833 implementations */
 #define SIP_PAGE2_BUGGY_MWI                 (1 << 22)   /*!< DP: Buggy CISCO MWI fix */
@@ -359,9 +359,11 @@
 
 #define SIP_PAGE3_SNOM_AOC               (1 << 0)  /*!< DPG: Allow snom aoc messages */
 #define SIP_PAGE3_DIRECT_MEDIA_OUTGOING  (1 << 1)  /*!< DP: Only send direct media reinvites on outgoing calls */
+#define SIP_PAGE3_REMOTE_HOLD		 (1 << 15)  /*!< DPG: Do not generate hold music, send remote hold (config)*/
+#define SIP_PAGE3_REMOTE_HOLD_STATUS	 (1 << 16)  /*!< D: True if dialog is put on hold by pbx core */
 
 #define SIP_PAGE3_FLAGS_TO_COPY \
-	(SIP_PAGE3_SNOM_AOC | SIP_PAGE3_DIRECT_MEDIA_OUTGOING)
+	(SIP_PAGE3_SNOM_AOC | SIP_PAGE3_DIRECT_MEDIA_OUTGOING | SIP_PAGE3_REMOTE_HOLD)
 
 /*@}*/
 

Propchange: team/oej/jasmin-remote-hold-1.8/configs/res_curl.conf.sample
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/musiconhold.sql
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/queue_log.sql
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/voicemail_data.sql
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/contrib/realtime/mysql/voicemail_messages.sql
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/doc/Makefile
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/include/asterisk/bridging_features.h
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/include/asterisk/bridging_technology.h
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/include/asterisk/select.h
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Modified: team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c?view=diff&rev=385825&r1=385824&r2=385825
==============================================================================
--- team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c (original)
+++ team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c Tue Apr 16 03:11:52 2013
@@ -35,7 +35,7 @@
 
 #include "asterisk.h"
 
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 89545 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 //#include <time.h>
 //#include <string.h>

Propchange: team/oej/jasmin-remote-hold-1.8/res/res_mutestream.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/res/res_rtp_multicast.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Author Date Id Revision'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/res/res_timing_kqueue.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/tests/test_expr.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/tests/test_func_file.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/tests/test_locale.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision

Propchange: team/oej/jasmin-remote-hold-1.8/tests/test_poll.c
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 16 03:11:52 2013
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision




More information about the asterisk-commits mailing list