Подключение к АТС по протоколу smdr
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Соблюдайте общие правила форума
MSDN Library
FAQ раздела
Поиск по разделу
Как правильно задавать вопросы
Подключение к АТС по протоколу smdr
|
Сообщ.
#1
,
|
|
|
|
Приветствую
подскажите как подключиться к АТС по протоколу smdr из дельфи? putty подключается, а в дельфи делаю: ![]() ![]() 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); не ошибок не выводит и ни каких ответов нет |
|
Сообщ.
#2
,
|
|
|
|
Цитата eda-76 @ cmd Цитата eda-76 @ asterisk_cmd Это разные переменные вообще-то. |
|
Сообщ.
#3
,
|
|
|
|
не в этом проблема, не все подкорректировал для форума
проблема в том что не могу передать логин и пароль на АТС и получать лог |
|
Сообщ.
#4
,
|
|
|
|
eda-76
Можно снять логи сниффером с putty и посмотреть что он передает. |
|
Сообщ.
#5
,
|
|
|
|
просто не хочется изобретать велосипед, может кто то уже делал, что то подобное
интересно то что при коннекте сразу идет дисконнект, такое ощущение что надо уже при коннекте передавать логин и пароль, хотя putty нормально ждет |
|
Сообщ.
#6
,
|
|
|
|
1. Судя по номеру порта, это обычный телнет.
2. Ищем любой готовый компонент клиента Telnet 3. .... 4. Профит. Добавлено А в коде у тебя полная жопа. Ты пытаешься залогиниться сразу после открытия соединения. Так не делается. Такое возможно в событии OnConnect. |
|
Сообщ.
#7
,
|
|
|
|
ну жопа не жопа, так как здесь вырезка из разных процедур и на результат это ни как не влияет, проблема в том, что именно надо посылать туда (какие команды)
сейчас у меня начало возвращать "Enter Password:" и я пытаюсь отловить это и вернуть пароль, но мне кажется, что должно как то командой передаваться. |
|
Сообщ.
#8
,
|
|
|
|
получилось (правда через одно место), вдруг кому интересно будет
![]() ![]() .... 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; ..... ![]() ![]() 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; |