Allow to Dial without sending complete i.e. This is necessary if dialing is done in overlapped mode but signeling network does not supports sending of initla message witout CPN: SS7 IAM without CPN results in protocol error if send to switch (vendor?) but works B2B with Diva.
This commit is contained in:
parent
c5a0982ee5
commit
f0c37c2067
1
README
1
README
|
@ -98,6 +98,7 @@ The Dial string
|
||||||
(Useful if additional digits should be send afterwards or together
|
(Useful if additional digits should be send afterwards or together
|
||||||
with 'b' to get the dialtone and then send the number, e.g., if
|
with 'b' to get the dialtone and then send the number, e.g., if
|
||||||
no progress tones are available)
|
no progress tones are available)
|
||||||
|
'c' : do not send sending complete
|
||||||
's' : activate 'stay-online': do not disconnect CAPI connection on hangup.
|
's' : activate 'stay-online': do not disconnect CAPI connection on hangup.
|
||||||
This is needed to give additional commands like CCBS after hangup.
|
This is needed to give additional commands like CCBS after hangup.
|
||||||
To really hang up the CAPI connection, use either capicommand(hangup)
|
To really hang up the CAPI connection, use either capicommand(hangup)
|
||||||
|
|
|
@ -1525,6 +1525,7 @@ static int pbx_capi_call(struct ast_channel *c, char *idest, int timeout)
|
||||||
int doqsig;
|
int doqsig;
|
||||||
char *sending_complete;
|
char *sending_complete;
|
||||||
unsigned char *facilityarray = NULL, *bc_s = NULL, *llc_s = 0, *hlc_s = 0;
|
unsigned char *facilityarray = NULL, *bc_s = NULL, *llc_s = 0, *hlc_s = 0;
|
||||||
|
int no_sending_complete = 0;
|
||||||
|
|
||||||
MESSAGE_EXCHANGE_ERROR error;
|
MESSAGE_EXCHANGE_ERROR error;
|
||||||
|
|
||||||
|
@ -1555,6 +1556,11 @@ static int pbx_capi_call(struct ast_channel *c, char *idest, int timeout)
|
||||||
cc_log(LOG_WARNING, "Overlap already set in '%s'\n", idest);
|
cc_log(LOG_WARNING, "Overlap already set in '%s'\n", idest);
|
||||||
i->doOverlap = 1;
|
i->doOverlap = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'c': /* Do not send sending complete */
|
||||||
|
if (no_sending_complete != 0)
|
||||||
|
cc_log(LOG_WARNING, "No sending complete already set in '%s'\n", idest);
|
||||||
|
no_sending_complete = 1;
|
||||||
|
break;
|
||||||
case 'd': /* use default cid */
|
case 'd': /* use default cid */
|
||||||
if (use_defaultcid)
|
if (use_defaultcid)
|
||||||
cc_log(LOG_WARNING, "Default CID already set in '%s'\n", idest);
|
cc_log(LOG_WARNING, "Default CID already set in '%s'\n", idest);
|
||||||
|
@ -1697,7 +1703,7 @@ static int pbx_capi_call(struct ast_channel *c, char *idest, int timeout)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
called[0] = strlen(dest) + 1;
|
called[0] = strlen(dest) + 1;
|
||||||
sending_complete = "\x02\x01\x00";
|
sending_complete = (no_sending_complete == 0) ? "\x02\x01\x00" : "\x00";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((p = pbx_builtin_getvar_helper(c, "CALLEDTON"))) {
|
if ((p = pbx_builtin_getvar_helper(c, "CALLEDTON"))) {
|
||||||
|
|
Loading…
Reference in New Issue