diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2002-02-08 12:47:18 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2002-02-08 12:47:18 +0000 |
commit | 75465c0e548bdfe264e292d95499afd38af824d1 (patch) | |
tree | ef1c7c6292901ad5bfc36abf81678ffaa9cde929 | |
parent | e67317f8216fc2b90f17b5877b2ae0ac7a9e57ec (diff) |
Version 0.1.11 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@411 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | channels/chan_modem_i4l.c | 13 |
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); |