Tilman Schmidt
2009-08-09 13:58:16 UTC
The CAPI 2.0 Standard (4th Edition, June 2001) states, in ch. 5.37 LISTEN_REQ:
"[...] If more than one applica-
tion attempts to accept the call, the first CONNECT_RESP received by COMMON-
ISDN-API is accepted. Every other application receives a DISCONNECT_IND mes-
sage which indicates this situation in the Reason parameter."
It is silent, though, about applications attempting to ignore or reject a
call for which a CONNECT_IND has been sent to other applications, too. For
Reject==1 ("Ignore") it seems logical that the other applications should be
unaffected, but what about Reject>1, ie. the application actively rejecting
the call?
- Should the effect of Reject>1 be global, triggering DISCONNECT_IND for all
other listeners? If so, with what Reason? 0x3304 "The call was given to
another application" appears a bit stretched.
- Or should Reject>1 be treated like Reject==1 ("Ignore") in the presence of
other listeners who haven't responded yet?
- What if several listeners respond with different non-zero Reject values?
Which one should prevail? The last one? The biggest one? The first one
not ignoring the call?
- Put differently, should the call be rejected if at least one application
rejected it, even if other applications ignore it later?
Thanks in advance for any comments,
Tilman
"[...] If more than one applica-
tion attempts to accept the call, the first CONNECT_RESP received by COMMON-
ISDN-API is accepted. Every other application receives a DISCONNECT_IND mes-
sage which indicates this situation in the Reason parameter."
It is silent, though, about applications attempting to ignore or reject a
call for which a CONNECT_IND has been sent to other applications, too. For
Reject==1 ("Ignore") it seems logical that the other applications should be
unaffected, but what about Reject>1, ie. the application actively rejecting
the call?
- Should the effect of Reject>1 be global, triggering DISCONNECT_IND for all
other listeners? If so, with what Reason? 0x3304 "The call was given to
another application" appears a bit stretched.
- Or should Reject>1 be treated like Reject==1 ("Ignore") in the presence of
other listeners who haven't responded yet?
- What if several listeners respond with different non-zero Reject values?
Which one should prevail? The last one? The biggest one? The first one
not ignoring the call?
- Put differently, should the call be rejected if at least one application
rejected it, even if other applications ignore it later?
Thanks in advance for any comments,
Tilman