GSM MNCC: Make sure to set the MNCC_F_KEYPAD when ACKing DTMF
authorHarald Welte <laforge@gnumonks.org>
Thu, 23 Dec 2010 18:03:47 +0000 (19:03 +0100)
committerAndreas Eversberg <jolly@eversberg.eu>
Sun, 20 Feb 2011 10:33:46 +0000 (11:33 +0100)
TS 04.08 has a _mandatory_ KEYPAD FACILITY IE, and unless we set
the MNCC_F_KEYPAD, some phones will (legitimately) reject the
04.08 DTMF KEYPAD_ACK without that IE.

gsm_bs.cpp

index 3fc9a88..3ac5bda 100644 (file)
@@ -93,6 +93,7 @@ void Pgsm_bs::start_dtmf_ind(unsigned int msg_type, unsigned int callref, struct
        add_trace("keypad", NULL, "%c", mncc->keypad);
        end_trace();
        resp = create_mncc(MNCC_START_DTMF_RSP, p_m_g_callref);
        add_trace("keypad", NULL, "%c", mncc->keypad);
        end_trace();
        resp = create_mncc(MNCC_START_DTMF_RSP, p_m_g_callref);
+       resp->fields |= MNCC_F_KEYPAD;
        resp->keypad = mncc->keypad;
        send_and_free_mncc(p_m_g_instance, resp->msg_type, resp);
 
        resp->keypad = mncc->keypad;
        send_and_free_mncc(p_m_g_instance, resp->msg_type, resp);