Send a generic return result when we receive a CallDeflection facility message in...
authorRichard Mudgett <rmudgett@digium.com>
Thu, 13 Aug 2009 17:33:44 +0000 (17:33 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 13 Aug 2009 17:33:44 +0000 (17:33 +0000)
ETSI 300-196 implies that a facility return result without arguments does
not have the operation-value.  This fact implies for ETSI that you can
only use the invoke-id to match requests with responses.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@212199 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c

index a26bdac..4860ba0 100644 (file)
@@ -8761,9 +8761,18 @@ static void misdn_facility_ie_handler(enum event_e event, struct misdn_bchannel
                                ast_string_field_set(ch->ast, call_forward, bc->redirecting.to.number);
 
                                /* Send back positive ACK */
+#if 1
+                               /*
+                                * Since there are no return result arguments it must be a
+                                * generic result message.  ETSI 300-196
+                                */
+                               bc->fac_out.Function = Fac_RESULT;
+                               bc->fac_out.u.RESULT.InvokeID = bc->fac_in.u.CallDeflection.InvokeID;
+#else
                                bc->fac_out.Function = Fac_CallDeflection;
                                bc->fac_out.u.CallDeflection.InvokeID = bc->fac_in.u.CallDeflection.InvokeID;
                                bc->fac_out.u.CallDeflection.ComponentType = FacComponent_Result;
+#endif
                                print_facility(&bc->fac_out, bc);
                                misdn_lib_send_event(bc, EVENT_DISCONNECT);