Tony,

Try CVS version and apply this patch.

Attachment: telnet.diff
Description: Binary data


This adds telnet support besides rawtcp.
I also added support for login/password prompts scanning as the Multi-Tech asks for Username / Password at login (and Cisco's do as well usually).


in the config put this:


group = modems
id = wavecom
name = Wavecom
detect-string = "WAVECOM"

group = smsc
smsc = at
smsc-id = "mymodem"
modemtype = wavecom
speed = 19200
device = telnet
port = 5000
host = 1.2.3.4
keepalive = 240
smsc-username = xxxx
smsc-password = xxxx


I tested with Multitech Firmware Release 1.19.
If it works fine with you and others, I will commit it tomorrow after having it tested with a cisco router as well.


On 24.06.2008, at 01:02, Andreas Fink wrote:

Tony,

I looked a little bit deeper into your issue with Multi-Tech MTCBA-G-EN-F4 modem.
I actually have such a device now on my desk as I found it rather neat to have it on ethernet. Saves a computer and USB to serial for my test modem banks.

There are two things to be changed for it to work with Kannel:

a) after connecting a tcp session, a telnet handshake has to be done (that part i find rather strange). So some exchange of escape sequences has to be done.
b) after that exchange, the user is prompted with Login: and Password: before he gets access to the AT commands.

tcp connections are supported in kannel (device=rawtcp, host=... port=...) but above stops your device from working.
I'll see that I can make a patch for this device by extending kannel to support smsc-username/smsc-password on at-commands to log in as well as to add the telnet handshake.

On 19.06.2008, at 00:08, Tony Kirkham wrote:

I have not been able to make any headway on this.  If anyone has any ideas, that would help, I would greatly appreciate it.

Thanks,

-Tony

On Sat, Jun 7, 2008 at 1:27 PM, Tony Kirkham <[EMAIL PROTECTED]> wrote:
Hi, guys,

I'm back with more questions.  I am still trying to get kannel to talk to a Multi-Tech MTCBA-G-EN-F4 modem that connects via an ethernet port. 

If you have good knowledge of the smsc_at driver code I could really use your help.

I have been hacking away at the smsc_at.c code and have wrapped the code to detect the modem speed in an
  if ( privdata->is_serial ) { ... }
statement so that this won't be attempted because, apparently, you cannot detect this modems speed.

I thought this would solve my problem but, alas, it did not.  I have now worked my way down into the at2_read_buffer() call and I think that this is where the problem is occurring.  I have placed a few DEBUG log file writes in locations to show what is happening.  I am completely new to communicating to modems and via raw tcp so I do not know what should be expected.  However, I don't think the at2_read_buffer() call is getting anything.  Below, is a reduced log file for the at device containing what is written from a startup - shutdown cycle of bearerbox. 

The biggest indicators that I see are that privdata->lib = strange characters and at2_read_line() never finds an end-of-line character.  The at2_read_buffer() call only executes a read the first time for the first AT command.  After that it seems like the state of something is stuck because the select() call only returns 0 causing the at2_read_buffer() call to return NULL before the read() is attempted.

If anyone has some insight into this I would greatly appreciate it.  I am using the code in the source download.  I have not pulled anything from the cvs repository.

Thank you very much,

-Tony

log file

      1 2008-06-07 12:51:06 [15527] [6] INFO: AT2[vzn00]: opening device
      2 2008-06-07 12:51:06 [15527] [6] DEBUG: AT2[vzn00]: device opened
      3 2008-06-07 12:51:06 [15527] [6] INFO: AT2[vzn00]: init device
      4 2008-06-07 12:51:06 [15527] [6] DEBUG: AT2[vzn00]: --> ATZ^M
      5 2008-06-07 12:51:06 [15527] [6] DEBUG: AT2[vzn00]: --> ATZ^M -response: 4
      6 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_wait_modem_command: before while cur_time <= end_time
      7 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 1
      8 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_buffer: before read, ret: 1
      9 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_buffer: after read, s: 12
     10 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     11 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
     12 2008-06-07 12:51:06 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 0
     13 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     14 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
... 1000's of repetitions of the above 3 lines ...
     15 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_wait_modem_command: Out of loop: cur_time: 1212864670, end_time: 1212864669
     16 2008-06-07 12:51:10 [15527] [6] ERROR: AT2[vzn00]: Wrong or no answer to ATZ, ignoring
     17 2008-06-07 12:51:10 [15527] [6] DEBUG: AT2[vzn00]: --> AT^M
     18 2008-06-07 12:51:10 [15527] [6] DEBUG: AT2[vzn00]: --> AT^M -response: 3
     19 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_wait_modem_command: before while cur_time <= end_time
     20 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 0
     21 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     22 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
... 1000's of repetitions ...
     23 2008-06-07 12:51:10 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 0
     24 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     25 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
     26 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_wait_modem_command: Out of loop: cur_time: 1212864674, end_time: 1212864673
     27 2008-06-07 12:51:14 [15527] [6] ERROR: AT2[vzn00]: Wrong or no answer to AT. Trying again
     28 2008-06-07 12:51:14 [15527] [6] DEBUG: AT2[vzn00]: --> AT^M
     29 2008-06-07 12:51:14 [15527] [6] DEBUG: AT2[vzn00]: --> AT^M -response: 3
     30 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_wait_modem_command: before while cur_time <= end_time
     31 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 0
     32 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     33 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
... 1000's of repetitions ...
     34 2008-06-07 12:51:14 [15527] [6] DEBUG: in at2_read_buffer: after select, ret: 0
     35 2008-06-07 12:51:18 [15527] [6] DEBUG: in at2_read_line with gt_flag=0, gtloc=-1, lib=ÿý^Xÿý ÿý#ÿý'
     36 2008-06-07 12:51:18 [15527] [6] DEBUG: in at2_read_line if eol == -1 will return NULL eol: -1
     37 2008-06-07 12:51:18 [15527] [6] DEBUG: in at2_wait_modem_command: Out of loop: cur_time: 1212864678, end_time: 1212864677
     38 2008-06-07 12:51:18 [15527] [6] ERROR: AT2[vzn00]: Second attempt to send AT failed
     39 2008-06-07 12:51:18 [15527] [6] ERROR: AT2[vzn00]: Opening failed. Terminating
     40 2008-06-07 12:51:18 [15527] [6] INFO: AT2[vzn00]: closing device
     41 2008-06-07 12:51:18 [15527] [6] INFO: AT2[vzn00]: closing device
     42 2008-06-07 12:51:18 [15527] [6] DEBUG: Thread 6 (gw/smsc/smsc_at.c:at2_device_thread) terminates.





Reply via email to