preserve transfer-capability in Q.931 -> Q.931 calls
This is important so udi/rdi doesn't get converted to speech.
This commit is contained in:
parent
4679853a20
commit
02ab7441ae
|
@ -1297,6 +1297,7 @@ SignallingEvent* ISDNQ931Call::processMsgSetup(ISDNQ931Message* msg)
|
||||||
msg->params().setParam("callednumtype",m_data.m_calledType);
|
msg->params().setParam("callednumtype",m_data.m_calledType);
|
||||||
msg->params().setParam("callednumplan",m_data.m_calledPlan);
|
msg->params().setParam("callednumplan",m_data.m_calledPlan);
|
||||||
msg->params().setParam("overlapped",String::boolText(m_overlap));
|
msg->params().setParam("overlapped",String::boolText(m_overlap));
|
||||||
|
msg->params().setParam("transfer-cap",m_data.m_transferCapability);
|
||||||
return new SignallingEvent(SignallingEvent::NewCall,msg,this);
|
return new SignallingEvent(SignallingEvent::NewCall,msg,this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1655,7 +1656,7 @@ bool ISDNQ931Call::sendSetup(SignallingMessage* sigMsg)
|
||||||
if (q931()->parserData().flag(ISDNQ931::ForceSendComplete))
|
if (q931()->parserData().flag(ISDNQ931::ForceSendComplete))
|
||||||
msg->appendSafe(new ISDNQ931IE(ISDNQ931IE::SendComplete));
|
msg->appendSafe(new ISDNQ931IE(ISDNQ931IE::SendComplete));
|
||||||
// BearerCaps
|
// BearerCaps
|
||||||
m_data.m_transferCapability = "speech";
|
m_data.m_transferCapability = sigMsg->params().getValue(YSTRING("transfer-cap"), "speech");
|
||||||
m_data.m_transferMode = "circuit";
|
m_data.m_transferMode = "circuit";
|
||||||
m_data.m_transferRate = "64kbit";
|
m_data.m_transferRate = "64kbit";
|
||||||
m_data.m_format = sigMsg->params().getValue(YSTRING("format"),q931()->format());
|
m_data.m_format = sigMsg->params().getValue(YSTRING("format"),q931()->format());
|
||||||
|
|
|
@ -1085,7 +1085,7 @@ SigChannel::SigChannel(SignallingEvent* event)
|
||||||
// call.preroute message
|
// call.preroute message
|
||||||
m_route = message("call.preroute",false,true);
|
m_route = message("call.preroute",false,true);
|
||||||
// Parameters to be copied to call.preroute
|
// Parameters to be copied to call.preroute
|
||||||
static String params = "caller,called,callername,format,formats,callernumtype,callernumplan,callerpres,callerscreening,callednumtype,callednumplan,inn,overlapped";
|
static String params = "caller,called,callername,format,formats,callernumtype,callernumplan,callerpres,callerscreening,callednumtype,callednumplan,inn,overlapped,transfer-cap";
|
||||||
plugin.copySigMsgParams(*m_route,event,¶ms);
|
plugin.copySigMsgParams(*m_route,event,¶ms);
|
||||||
if (m_route->getBoolValue("overlapped") && !m_route->getValue("called"))
|
if (m_route->getBoolValue("overlapped") && !m_route->getValue("called"))
|
||||||
m_route->setParam("called","off-hook");
|
m_route->setParam("called","off-hook");
|
||||||
|
@ -1237,6 +1237,7 @@ bool SigChannel::startCall(Message& msg, SigTrunk* trunk)
|
||||||
sigMsg->params().copyParam(msg,"callednumplan");
|
sigMsg->params().copyParam(msg,"callednumplan");
|
||||||
sigMsg->params().copyParam(msg,"inn");
|
sigMsg->params().copyParam(msg,"inn");
|
||||||
sigMsg->params().copyParam(msg,"calledpointcode");
|
sigMsg->params().copyParam(msg,"calledpointcode");
|
||||||
|
sigMsg->params().copyParam(msg,"transfer-cap");
|
||||||
// Copy RTP parameters
|
// Copy RTP parameters
|
||||||
if (msg.getBoolValue("rtp_forward")) {
|
if (msg.getBoolValue("rtp_forward")) {
|
||||||
NamedList* tmp = new NamedList("rtp");
|
NamedList* tmp = new NamedList("rtp");
|
||||||
|
|
Loading…
Reference in New Issue