Added setting to disable dropping the call if the remote sends an unknown or unsupported ISUP message in an early call state.

git-svn-id: http://voip.null.ro/svn/yate@4082 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2011-01-28 12:13:51 +00:00
parent 142dc1a6d2
commit 0499d4774a
3 changed files with 9 additions and 1 deletions

View File

@ -402,6 +402,10 @@
; Defaults to yes
;confirm_ccr=yes
; drop_unknown: boolean: Drop call or attempt to change circuit if an unknown
; or unsupported message is received in an early state
;drop_unknown=yes
; ignore-grs-single: boolean: Ignore (drop) circuit group reset messages with
; range 0 (1 circuit affected)
; Defaults to no

View File

@ -3055,6 +3055,7 @@ SS7ISUP::SS7ISUP(const NamedList& params, unsigned char sio)
m_defaultSls(SlsLatest),
m_maxCalledDigits(16),
m_confirmCCR(true),
m_dropOnUnknown(true),
m_ignoreGRSSingle(false),
m_ignoreCGBSingle(false),
m_ignoreCGUSingle(false),
@ -3156,6 +3157,7 @@ SS7ISUP::SS7ISUP(const NamedList& params, unsigned char sio)
m_continuity = params.getValue("continuity");
m_confirmCCR = params.getBoolValue("confirm_ccr",true);
m_dropOnUnknown = params.getBoolValue("drop_unknown",true);
m_ignoreGRSSingle = params.getBoolValue("ignore-grs-single");
m_ignoreCGBSingle = params.getBoolValue("ignore-cgb-single");
m_ignoreCGUSingle = params.getBoolValue("ignore-cgu-single");
@ -3221,6 +3223,7 @@ bool SS7ISUP::initialize(const NamedList* config)
m_earlyAcm = config->getBoolValue("earlyacm",m_earlyAcm);
m_continuity = config->getValue("continuity",m_continuity);
m_confirmCCR = config->getBoolValue("confirm_ccr",true);
m_dropOnUnknown = config->getBoolValue("drop_unknown",true);
m_ignoreGRSSingle = config->getBoolValue("ignore-grs-single");
m_ignoreCGBSingle = config->getBoolValue("ignore-cgb-single");
m_ignoreCGUSingle = config->getBoolValue("ignore-cgu-single");
@ -4874,7 +4877,7 @@ void SS7ISUP::processControllerMsg(SS7MsgISUP* msg, const SS7Label& label, int s
if (call)
call->ref();
unlock();
if (call && call->earlyState()) {
if (m_dropOnUnknown && call && call->earlyState()) {
Debug(this,DebugNote,
"Received unexpected message for call %u (%p) in initial state",
msg->cic(),call);

View File

@ -8348,6 +8348,7 @@ private:
String m_format; // Default format
String m_continuity; // Continuity test type
bool m_confirmCCR; // Send LPA in response to CCR
bool m_dropOnUnknown; // Drop call in early state on unknown message
bool m_ignoreGRSSingle; // Ignore (drop) GRS with range 0 (1 circuit affected)
bool m_ignoreCGBSingle; // Ignore (drop) CGB with range 0 (1 circuit in map)
bool m_ignoreCGUSingle; // Ignore (drop) CGU with range 0 (1 circuit in map)