aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2019-12-24 15:20:55 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2019-12-24 15:20:55 +0100
commit5c8919a78bee3e51cb619f9d5921d69a005e48ae (patch)
tree5af3f048ac27888b7422d06e6972e035ac723a27 /src
parentb1e36be99f67780572b9cf8eab6199b37b071e23 (diff)
eurosignal: Fixed and simplified notification (beep) on received ID
Diffstat (limited to 'src')
-rw-r--r--src/eurosignal/eurosignal.c36
-rw-r--r--src/eurosignal/main.c6
2 files changed, 14 insertions, 28 deletions
diff --git a/src/eurosignal/eurosignal.c b/src/eurosignal/eurosignal.c
index e234a6b..39a9cf0 100644
--- a/src/eurosignal/eurosignal.c
+++ b/src/eurosignal/eurosignal.c
@@ -46,6 +46,7 @@
This offset of 0x400000000 is required for MNCC interface. */
static int new_callref = 0x40000000;
+/* these calls are not associated with a transmitter */
euro_call_t *ooo_call_list = NULL;
struct id_list {
@@ -464,31 +465,24 @@ void euro_receive_id(euro_t *euro, char *id)
/* we want to send beep via MNCC */
if (id_list) {
- sender_t *sender;
- euro_t *e;
euro_call_t *call;
char dialing[32];
int callref;
int rc;
/* check if we already have a call that beeps */
- for (sender = sender_head; sender; sender = sender->next) {
- e = (euro_t *) sender;
- for (call = e->call_list; call; call = call->next) {
- if (!strcmp(call->station_id, id) && call->state == EURO_CALL_BEEPING)
- break;
- }
- if (call)
+ for (call = ooo_call_list; call; call = call->next) {
+ if (!strcmp(call->station_id, id) && call->state == EURO_CALL_BEEPING)
break;
}
/* if already beeping */
- if (sender)
+ if (call)
return;
/* create call and send setup */
PDEBUG_CHAN(DEURO, DEBUG_INFO, "Sending setup towards network.'\n");
callref = ++new_callref;
- call = euro_call_create(euro, callref, id);
+ call = euro_call_create(NULL, callref, id);
call_new_state(call, EURO_CALL_BEEPING);
sprintf(dialing, "%d", count);
rc = call_up_setup(callref, call->station_id, dialing);
@@ -554,11 +548,8 @@ void euro_clock_chunk(sender_t *sender)
/* no callref */
if (!call->callref)
continue;
- /* beep or announcement */
- if (call->state == EURO_CALL_BEEPING)
- call_play_beep(call);
- else
- call_play_announcement(call);
+ /* announcement */
+ call_play_announcement(call);
}
}
@@ -727,23 +718,16 @@ inval:
void call_down_answer(int __attribute__((unused)) callref)
{
- sender_t *sender;
- euro_t *euro;
euro_call_t *call;
PDEBUG(DEURO, DEBUG_INFO, "Call has been answered by network.\n");
- for (sender = sender_head; sender; sender = sender->next) {
- euro = (euro_t *) sender;
- for (call = euro->call_list; call; call = call->next) {
- if (call->callref == callref)
- break;
- }
- if (call)
+ for (call = ooo_call_list; call; call = call->next) {
+ if (call->callref == callref)
break;
}
if (!call) {
- PDEBUG(DEURO, DEBUG_NOTICE, "Outgoing disconnect, but no callref!\n");
+ PDEBUG(DEURO, DEBUG_NOTICE, "Answer from network, but no callref!\n");
call_up_release(callref, CAUSE_INVALCALLREF);
return;
}
diff --git a/src/eurosignal/main.c b/src/eurosignal/main.c
index c38d9bc..c5a9579 100644
--- a/src/eurosignal/main.c
+++ b/src/eurosignal/main.c
@@ -63,8 +63,10 @@ void print_help(const char *arg0)
printf(" Give one or more IDs to allow only the given IDs to be transmitted and\n");
printf(" received. This option can be repeated many times. If this option is not\n");
printf(" specified, any ID is allowed to transmit.\n");
- printf(" Also, any ID given will cause a beep when the ID was received. This\n");
- printf(" requires call device (sound card) to be defined or MNCC interface.\n");
+ printf(" Also, any given ID will cause a beep when received. This requires call\n");
+ printf(" device (sound card) to be defined or MNCC interface. (The caller ID will\n");
+ printf(" be the received pager ID. The called number will be '1' for the first\n");
+ printf(" ID given, '2' for scond, ...)\n");
printf(" -D --degraded\n");
printf(" Play the anouncement that the system is degraded due to failure of one\n");
printf(" or more transmitters. If the caller hangs up during or rigt after the\n");