projects
/
lcr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added new option to interface.conf: "nonotify" to disable notify messages.
[lcr.git]
/
dss1.cpp
diff --git
a/dss1.cpp
b/dss1.cpp
index
1191b9e
..
75ff448
100644
(file)
--- a/
dss1.cpp
+++ b/
dss1.cpp
@@
-402,7
+402,7
@@
void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
int bearer_coding, bearer_capability, bearer_mode, bearer_rate, bearer_multi, bearer_user;
int exclusive, channel;
int ret;
int bearer_coding, bearer_capability, bearer_mode, bearer_rate, bearer_multi, bearer_user;
int exclusive, channel;
int ret;
- unsigned char keypad[3
2
] = "";
+ unsigned char keypad[3
3
] = "";
unsigned char useruser[128];
int useruser_len = 0, useruser_protocol;
class Endpoint *epoint;
unsigned char useruser[128];
int useruser_len = 0, useruser_protocol;
class Endpoint *epoint;
@@
-473,6
+473,12
@@
void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
case 0:
p_callerinfo.screen = INFO_SCREEN_USER;
break;
case 0:
p_callerinfo.screen = INFO_SCREEN_USER;
break;
+ case 1:
+ p_callerinfo.screen = INFO_SCREEN_USER_VERIFIED_PASSED;
+ break;
+ case 2:
+ p_callerinfo.screen = INFO_SCREEN_USER_VERIFIED_FAILED;
+ break;
default:
p_callerinfo.screen = INFO_SCREEN_NETWORK;
break;
default:
p_callerinfo.screen = INFO_SCREEN_NETWORK;
break;
@@
-516,6
+522,12
@@
void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
case 0:
p_callerinfo.screen2 = INFO_SCREEN_USER;
break;
case 0:
p_callerinfo.screen2 = INFO_SCREEN_USER;
break;
+ case 1:
+ p_callerinfo.screen2 = INFO_SCREEN_USER_VERIFIED_PASSED;
+ break;
+ case 2:
+ p_callerinfo.screen2 = INFO_SCREEN_USER_VERIFIED_FAILED;
+ break;
default:
p_callerinfo.screen2 = INFO_SCREEN_NETWORK;
break;
default:
p_callerinfo.screen2 = INFO_SCREEN_NETWORK;
break;
@@
-574,6
+586,12
@@
void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
case 0:
p_redirinfo.screen = INFO_SCREEN_USER;
break;
case 0:
p_redirinfo.screen = INFO_SCREEN_USER;
break;
+ case 1:
+ p_redirinfo.screen = INFO_SCREEN_USER_VERIFIED_PASSED;
+ break;
+ case 2:
+ p_redirinfo.screen = INFO_SCREEN_USER_VERIFIED_FAILED;
+ break;
default:
p_redirinfo.screen = INFO_SCREEN_NETWORK;
break;
default:
p_redirinfo.screen = INFO_SCREEN_NETWORK;
break;
@@
-728,7
+746,7
@@
void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
void Pdss1::information_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
{
int type, plan;
void Pdss1::information_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
{
int type, plan;
- unsigned char keypad[3
2
] = "", display[128] = "";
+ unsigned char keypad[3
3
] = "", display[128] = "";
struct lcr_msg *message;
l1l2l3_trace_header(p_m_mISDNport, this, L3_INFORMATION_IND, DIRECTION_IN);
struct lcr_msg *message;
l1l2l3_trace_header(p_m_mISDNport, this, L3_INFORMATION_IND, DIRECTION_IN);
@@
-753,7
+771,7
@@
void Pdss1::information_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l
p_dialinginfo.ntype = INFO_NTYPE_UNKNOWN;
break;
}
p_dialinginfo.ntype = INFO_NTYPE_UNKNOWN;
break;
}
- SC
AT
(p_dialinginfo.display, (char *)display);
+ SC
PY
(p_dialinginfo.display, (char *)display);
message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_INFORMATION);
memcpy(&message->param.information, &p_dialinginfo, sizeof(struct dialing_info));
message_put(message);
message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_INFORMATION);
memcpy(&message->param.information, &p_dialinginfo, sizeof(struct dialing_info));
message_put(message);
@@
-1007,6
+1025,12
@@
void Pdss1::connect_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
case 0:
p_connectinfo.screen = INFO_SCREEN_USER;
break;
case 0:
p_connectinfo.screen = INFO_SCREEN_USER;
break;
+ case 1:
+ p_connectinfo.screen = INFO_SCREEN_USER_VERIFIED_PASSED;
+ break;
+ case 2:
+ p_connectinfo.screen = INFO_SCREEN_USER_VERIFIED_FAILED;
+ break;
default:
p_connectinfo.screen = INFO_SCREEN_NETWORK;
break;
default:
p_connectinfo.screen = INFO_SCREEN_NETWORK;
break;
@@
-1876,8
+1900,6
@@
void Pdss1::message_information(unsigned int epoint_id, int message_id, union pa
}
}
-int newteid = 0;
-
/* MESSAGE_SETUP */
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union parameter *param)
{
/* MESSAGE_SETUP */
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union parameter *param)
{
@@
-2002,6
+2024,12
@@
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
case INFO_SCREEN_USER:
screen = 0;
break;
case INFO_SCREEN_USER:
screen = 0;
break;
+ case INFO_SCREEN_USER_VERIFIED_PASSED:
+ screen = 1;
+ break;
+ case INFO_SCREEN_USER_VERIFIED_FAILED:
+ screen = 2;
+ break;
default: /* INFO_SCREEN_NETWORK */
screen = 3;
break;
default: /* INFO_SCREEN_NETWORK */
screen = 3;
break;
@@
-2040,6
+2068,12
@@
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
case INFO_SCREEN_USER:
screen2 = 0;
break;
case INFO_SCREEN_USER:
screen2 = 0;
break;
+ case INFO_SCREEN_USER_VERIFIED_PASSED:
+ screen2 = 1;
+ break;
+ case INFO_SCREEN_USER_VERIFIED_FAILED:
+ screen2 = 2;
+ break;
default: /* INFO_SCREEN_NETWORK */
screen2 = 3;
break;
default: /* INFO_SCREEN_NETWORK */
screen2 = 3;
break;
@@
-2064,6
+2098,9
@@
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
enc_ie_called_pn(l3m, 0, 1, (unsigned char *)p_dialinginfo.id, max);
SCPY(p_m_d_queue, p_dialinginfo.id + max);
}
enc_ie_called_pn(l3m, 0, 1, (unsigned char *)p_dialinginfo.id, max);
SCPY(p_m_d_queue, p_dialinginfo.id + max);
}
+ /* keypad */
+ if (p_dialinginfo.keypad[0])
+ enc_ie_keypad(l3m, (unsigned char *)p_dialinginfo.keypad);
/* sending complete */
if (p_dialinginfo.sending_complete)
enc_ie_complete(l3m, 1);
/* sending complete */
if (p_dialinginfo.sending_complete)
enc_ie_complete(l3m, 1);
@@
-2094,6
+2131,12
@@
void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
case INFO_SCREEN_USER:
screen = 0;
break;
case INFO_SCREEN_USER:
screen = 0;
break;
+ case INFO_SCREEN_USER_VERIFIED_PASSED:
+ screen = 1;
+ break;
+ case INFO_SCREEN_USER_VERIFIED_FAILED:
+ screen = 2;
+ break;
default: /* INFO_SCREE_NETWORK */
screen = 3;
break;
default: /* INFO_SCREE_NETWORK */
screen = 3;
break;
@@
-2197,7
+2240,14
@@
void Pdss1::message_notify(unsigned int epoint_id, int message_id, union paramet
int notify;
int plan = 0, type = -1, present = 0;
int notify;
int plan = 0, type = -1, present = 0;
- printf("if = %d\n", param->notifyinfo.notify);
+ if (p_m_mISDNport->ifport->nonotify) {
+ l1l2l3_trace_header(p_m_mISDNport, this, L3_NOTIFY_REQ, DIRECTION_OUT);
+ add_trace("info", NULL, "blocked by config");
+ end_trace();
+ return;
+ }
+
+// printf("if = %d\n", param->notifyinfo.notify);
if (param->notifyinfo.notify>INFO_NOTIFY_NONE)
notify = param->notifyinfo.notify & 0x7f;
else
if (param->notifyinfo.notify>INFO_NOTIFY_NONE)
notify = param->notifyinfo.notify & 0x7f;
else
@@
-2431,6
+2481,12
@@
void Pdss1::message_connect(unsigned int epoint_id, int message_id, union parame
case INFO_SCREEN_USER:
screen = 0;
break;
case INFO_SCREEN_USER:
screen = 0;
break;
+ case INFO_SCREEN_USER_VERIFIED_PASSED:
+ screen = 1;
+ break;
+ case INFO_SCREEN_USER_VERIFIED_FAILED:
+ screen = 2;
+ break;
default: /* INFO_SCREE_NETWORK */
screen = 3;
break;
default: /* INFO_SCREE_NETWORK */
screen = 3;
break;