Revision
16157
Author
gmaruzz
Date
2010-01-05 12:58:04 -0600 (Tue, 05 Jan 2010)

Log Message

gsmopen: correctly hangup if receive the CALL_IDLE AT unsolicited message setup in configuration. continue to implement workaround for broken Motorolas - no CNMI (unsolicited message for incoming SMS) and no PDU mode. YOU DON'T WANT THIS ONE :-)

Modified Paths

Diff

Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp (16156 => 16157)


--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp	2010-01-05 18:49:08 UTC (rev 16156)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp	2010-01-05 18:58:04 UTC (rev 16157)
@@ -874,6 +874,41 @@
 					gsmopen_queue_control(tech_pvt->owner, GSMOPEN_CONTROL_HANGUP);
 					DEBUGA_GSMOPEN("just sent GSMOPEN_CONTROL_HANGUP\n", GSMOPEN_P_LOG);
 				}
+
+				tech_pvt->phone_callflow = CALLFLOW_CALL_NOCARRIER;
+				if (option_debug > 1)
+					DEBUGA_GSMOPEN("|%s| CALLFLOW_CALL_NOCARRIER\n", GSMOPEN_P_LOG, tech_pvt->line_array.result[i]);
+				if (tech_pvt->interface_state != GSMOPEN_STATE_DOWN) {
+					//cicopet
+					switch_core_session_t *session = NULL;
+					switch_channel_t *channel = NULL;
+
+					tech_pvt->interface_state = GSMOPEN_STATE_DOWN;
+
+					session = switch_core_session_locate(tech_pvt->session_uuid_str);
+					if (session) {
+						channel = switch_core_session_get_channel(session);
+						//gsmopen_hangup(tech_pvt);
+						switch_core_session_rwunlock(session);
+						switch_channel_hangup(channel, SWITCH_CAUSE_NONE);
+					}
+					//
+					//tech_pvt->owner->hangupcause = GSMOPEN_CAUSE_FAILURE;
+					//gsmopen_queue_control(tech_pvt->owner, GSMOPEN_CONTROL_HANGUP);
+				} else {
+					ERRORA("Why NO CARRIER now?\n", GSMOPEN_P_LOG);
+				}
+
+
+
+
+
+
+
+
+
+
+
 			}
 
 			if ((strcmp(tech_pvt->line_array.result[i], tech_pvt->at_call_incoming) == 0)) {