На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> Подключение к АТС по протоколу smdr
    Приветствую
    подскажите как подключиться к АТС по протоколу smdr из дельфи? putty подключается, а в дельфи делаю:
    ExpandedWrap disabled
      Mysocket := TClientSocket.Create(nil);
          Mysocket.Address := '192.168.0.101';
          Mysocket.Port := 23;
          Mysocket.OnRead := ClientSocket1Read;
          Mysocket.OnError := ClientSocket1Error;
          Mysocket.Active := true;
       
          cmd.Clear;
          cmd.Add('user smdr');
          cmd.Add('pass PCCSMDR');
          cmd.Add('');
          Mysocket.Socket.SendText(asterisk_cmd.text);

    не ошибок не выводит и ни каких ответов нет
      Цитата eda-76 @
      cmd

      Цитата eda-76 @
      asterisk_cmd

      Это разные переменные вообще-то.
        не в этом проблема, не все подкорректировал для форума
        проблема в том что не могу передать логин и пароль на АТС и получать лог
          eda-76
          Можно снять логи сниффером с putty и посмотреть что он передает.
            просто не хочется изобретать велосипед, может кто то уже делал, что то подобное

            интересно то что при коннекте сразу идет дисконнект, такое ощущение что надо уже при коннекте передавать логин и пароль, хотя putty нормально ждет
              1. Судя по номеру порта, это обычный телнет.
              2. Ищем любой готовый компонент клиента Telnet
              3. ....
              4. Профит.

              Добавлено
              А в коде у тебя полная жопа. Ты пытаешься залогиниться сразу после открытия соединения. Так не делается. Такое возможно в событии OnConnect.
                ну жопа не жопа, так как здесь вырезка из разных процедур и на результат это ни как не влияет, проблема в том, что именно надо посылать туда (какие команды)
                сейчас у меня начало возвращать "Enter Password:" и я пытаюсь отловить это и вернуть пароль, но мне кажется, что должно как то командой передаваться.
                  получилось (правда через одно место), вдруг кому интересно будет
                  ExpandedWrap disabled
                     
                    ....    
                      Mysocket := TClientSocket.Create(nil);
                      Mysocket.Address := '192.168.0.101';
                      Mysocket.Port := 23;
                      Mysocket.OnRead := ClientSocket1Read;
                      Mysocket.OnError := ClientSocket1Error;
                      Mysocket.OnConnect:= ClientSocket1Connect;
                      Mysocket.Active := true;
                    .....

                  ExpandedWrap disabled
                    procedure TDM.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
                    Var SocketStr:WideString;
                    begin
                      SocketStr := Socket.ReceiveText;
                      Memo1.Lines.Add(SocketStr);
                     
                      if pos(#13+'-',String(SocketStr))>0 then Begin
                        Mysocket.Socket.SendText('smdr'+#13);
                      End;
                      if pos(#13+'Enter Password:',String(SocketStr))>0 then Begin
                        Mysocket.Socket.SendText('PCCSMDR'+#13);
                      End;
                    End;
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0.0806 ]   [ 15 queries used ]   [ Generated: 27.07.26, 05:06 GMT ]