aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_modem_i4l.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2002-02-08 12:47:18 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2002-02-08 12:47:18 +0000
commit75465c0e548bdfe264e292d95499afd38af824d1 (patch)
treeef1c7c6292901ad5bfc36abf81678ffaa9cde929 /channels/chan_modem_i4l.c
parente67317f8216fc2b90f17b5877b2ae0ac7a9e57ec (diff)
Version 0.1.11 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@411 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_modem_i4l.c')
-rwxr-xr-xchannels/chan_modem_i4l.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/channels/chan_modem_i4l.c b/channels/chan_modem_i4l.c
index 511db64b1..b02757f6f 100755
--- a/channels/chan_modem_i4l.c
+++ b/channels/chan_modem_i4l.c
@@ -161,9 +161,9 @@ static int i4l_init(struct ast_modem_pvt *p)
ast_log(LOG_WARNING, "Unable to set to transparent mode\n");
return -1;
}
- if (ast_modem_send(p, "ATS23=1", 0) ||
+ if (ast_modem_send(p, "ATS23=9", 0) ||
ast_modem_expect(p, "OK", 5)) {
- ast_log(LOG_WARNING, "Unable to set to transparent mode\n");
+ ast_log(LOG_WARNING, "Unable to set to transparent/ringing mode\n");
return -1;
}
@@ -200,6 +200,10 @@ static struct ast_frame *i4l_handle_escape(struct ast_modem_pvt *p, char esc)
p->fr.frametype = AST_FRAME_CONTROL;
p->fr.subclass = AST_CONTROL_RING;
return &p->fr;
+ case 'I': /* Pseudo ringing */
+ p->fr.frametype = AST_FRAME_CONTROL;
+ p->fr.subclass = AST_CONTROL_RINGING;
+ return &p->fr;
case 'X': /* Pseudo connect */
p->fr.frametype = AST_FRAME_CONTROL;
p->fr.subclass = AST_CONTROL_ANSWER;
@@ -290,6 +294,11 @@ static struct ast_frame *i4l_read(struct ast_modem_pvt *p)
strncpy(p->cid, result + 15, sizeof(p->cid)-1);
return i4l_handle_escape(p, 'R');
} else
+ if (!strcasecmp(result, "RINGING")) {
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_3 "%s is ringing...\n", p->dev);
+ return i4l_handle_escape(p, 'I');
+ } else
if (!strncasecmp(result, "RING", 4)) {
if (result[4]=='/')
strncpy(p->dnid, result + 4, sizeof(p->dnid)-1);