summaryrefslogtreecommitdiff
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2009-08-13 17:33:44 +0000
committerRichard Mudgett <rmudgett@digium.com>2009-08-13 17:33:44 +0000
commita305b52fc8e82cac8859af8b166ce662ab202aad (patch)
treeb8a9dbb5434f7cdc2fcbece12ac427d1626c15f9 /channels/chan_misdn.c
parent1effb11ef571e3248f48b68096ba25c5fcdda98f (diff)
Send a generic return result when we receive a CallDeflection facility message in chan_misdn.
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
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index a26bdacd6..4860ba0a7 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -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);