mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 16:21:01 +00:00
Set TON/PRESENTATION information more carefully when no CallingNumber IE available
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -762,6 +762,16 @@ void MyH323Connection::SetCallDetails(void *callDetails, const H323SignalPDU &se
|
|||||||
/* Construct fields back */
|
/* Construct fields back */
|
||||||
cd->type_of_number = (type << 4) | screening;
|
cd->type_of_number = (type << 4) | screening;
|
||||||
cd->presentation = (presentation << 5) | screening;
|
cd->presentation = (presentation << 5) | screening;
|
||||||
|
} else if (cd->call_source_e164[0]) {
|
||||||
|
cd->type_of_number = 0; /* UNKNOWN */
|
||||||
|
cd->presentation = 0x03; /* ALLOWED NETWORK NUMBER - Default */
|
||||||
|
if (setupPDU.GetQ931().HasIE(Q931::UserUserIE)) {
|
||||||
|
H225_Setup_UUIE &setup_uuie = setupPDU.m_h323_uu_pdu.m_h323_message_body
|
||||||
|
if (setup_uuie.HasOptionalField(e_presentationIndicator))
|
||||||
|
cd->presentation = (cd->presentation & 0x9f) | (((unsigned int)setup_uuie.m_presentationIndicator.GetTag()) << 5);
|
||||||
|
if (setup_uuie.HasOptionalField(e_screeningIndicator))
|
||||||
|
cd->presentation = (cd->presentation & 0xe0) | (((unsigned int)setup_uuie.m_screeningIndicator.GetValue()) & 0x1f);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
cd->type_of_number = 0; /* UNKNOWN */
|
cd->type_of_number = 0; /* UNKNOWN */
|
||||||
cd->presentation = 0x43; /* NUMBER NOT AVAILABLE */
|
cd->presentation = 0x43; /* NUMBER NOT AVAILABLE */
|
||||||
|
Reference in New Issue
Block a user