Hello, something is missing in libs/ysig/q931.cpp ---> bool ISDNQ931Call::sendProgress(SignallingMessage* sigMsg), I have modified this function to Alerting Message, so Now I am able to place a call, but still get "(96): Mandatory information element is missing" after PROGRESS:
L3->L2 : 21.09.2015 09:57:30
ETSI Message Type DCHAN: x07 CALLREF: x0062 MSG = SETUP
ETSI Information Element Identifier
Bearer Capability Len: x03, Data: x9090A3 3.1 kHz audio
Channel Ident. Len: x03, Data: xA18381
Progress Indicator Len: x02, Data: x8183
CallingPartyNumber Len: x0B, Data: x2180333234323838353032 'xxxxxxxxx'
Type Of Number: National number
Numbering Plan: ISDN/telephony numbering plan
Presentation Indicator: Presentation allowed
Screening Indicator: User-provided, not screened
CalledPartyNumber Len: x0A, Data: x81363031313030363031 'yyyyyyyyy'
Type Of Number: Unknown
Numbering Plan: ISDN/telephony numbering plan
L2->L3 : 21.09.2015 09:57:30 08 02 80 62 02 18 03 A1 83 81
ETSI Message Type DCHAN: x07 CALLREF: x8062 MSG = CALL PROCEEDING
ETSI Information Element Identifier
Channel Ident. Len: x03, Data: xA18381
L2->L3 : 21.09.2015 09:57:32 08 02 80 62 03
ETSI Message Type DCHAN: x07 CALLREF: x8062 MSG = PROGRESS
L3->L2 : 21.09.2015 09:57:32 08 02 00 62 7D 08 03 81 E0 1E 14 01 03
ETSI Message Type DCHAN: x07 CALLREF: x0062 MSG = STATUS
ETSI Information Element Identifier
Cause Len: x03, Data: x81E01E (96): Mandatory information element is missing
x14 Len: x01, Data: x03
L2->L3 : 21.09.2015 09:57:32 08 02 80 62 01
ETSI Message Type DCHAN: x07 CALLREF: x8062 MSG = ALERTING
L2->L3 : 21.09.2015 09:57:33 08 02 80 62 07
ETSI Message Type DCHAN: x07 CALLREF: x8062 MSG = CONNECT
L3->L2 : 21.09.2015 09:57:33 08 02 00 62 0F
ETSI Message Type DCHAN: x07 CALLREF: x0062 MSG = CONNECT ACK
L3->L2 : 21.09.2015 09:57:38 08 02 00 62 45 08 02 80 90
ETSI Message Type DCHAN: x07 CALLREF: x0062 MSG = DISCONNECT
ETSI Information Element Identifier
Cause Len: x02, Data: x8090 (16): Normal call clearing
L2->L3 : 21.09.2015 09:57:38 08 02 80 62 4D 08 03 0A 80 90
ETSI Message Type DCHAN: x07 CALLREF: x8062 MSG = RELEASE
ETSI Information Element Identifier
Cause Len: x03, Data: x0A8090
This is My modification, but I know it isin't good, but Now I am able to place a call, is there a way that someone could fix it ? To add ProgressIndicator only to PROGRESS message?
bool ISDNQ931Call::sendProgress(SignallingMessage* sigMsg)
{
MSG_CHECK_SEND(ISDNQ931Message::Progress)
const char* format = 0;
if (sigMsg) {
format = sigMsg->params().getValue(YSTRING("format"));
m_inbandAvailable = m_inbandAvailable ||
sigMsg->params().getBoolValue(YSTRING("earlymedia"),false);
if (m_inbandAvailable)
SignallingUtils::appendFlag(m_data.m_progress,"in-band-info");
}
if (format)
m_data.m_format = format;
// Change state, send message
changeState(CallReceived);
ISDNQ931Message* msg = new ISDNQ931Message(ISDNQ931Message::Progress,this);
if (m_rspBearerCaps) {
m_data.processBearerCaps(msg,true);
m_rspBearerCaps = false;
}
if (!m_channelIDSent) {
if (!q931()->primaryRate()) {
m_data.m_channelType = "B";
if (m_circuit)
m_data.m_channelSelect = lookup(m_circuit->code(),Q931Parser::s_dict_channelIDSelect_BRI);
if (!m_data.m_channelSelect) {
TelEngine::destruct(msg);
return sendReleaseComplete("congestion");
}
}
m_data.processChannelID(msg,true,&q931()->parserData());
m_channelIDSent = true;
}
m_data.processProgress(msg,true);
return q931()->sendMessage(msg,callTei());
}
Greetings