Avatar billede centauri Nybegynder
20. marts 2007 - 15:32 Der er 12 kommentarer og
1 løsning

SIP INVITE via UDP og Winsock

Jeg falt i et bald over et eksempel på hvodan amn lavede en script der viste hvor denmt det var at ringe ud til alle SIP telefoner på et lokal netværk. Dette script var så bare beregnet til Linux.
Del skal bare få telefonen til at ringe for at demonstrere hvor nemt folk med SIP telefoner kan generes.
Jeg har så prøvet at ville lave det i VB. Men kunne ikke lige helt få det til at virke. Så ville se om der her var nogle der have en ide om havd der var galt og om jeg gør noget forkert.
Min nuværende kode ser ud som følgende.

Winsock1.Protocol = 1
Winsock1.RemoteHost = "192.168.100.178"
Winsock1.RemotePort = 5060
Data.Text = "INVITE sip:192.168.100.164 SIP/2.0 " & vbCrLf
Data.Text = Data.Text & "f: sip:whoever@is.stupid " & vbCrLf
Data.Text = Data.Text & "t: sip:enough@to.accept " & vbCrLf
Data.Text = Data.Text & "i: this@junk " & vbCrLf
Data.Text = Data.Text & "l: 0 " & vbCrLf
Data.Text = Data.Text & "CSeq: 1 INVITE" & vbCrLf
Data.Text = Data.Text & ""

Winsock1.SendData Data.Text
Avatar billede sjh Nybegynder
20. marts 2007 - 15:58 #1
er det ikke bare fordi du skal afslutte med to vbCrLf

Data.Text = Data.Text & vbCrLf & vbCrLf
Avatar billede centauri Nybegynder
20. marts 2007 - 16:04 #2
Nej det gør desværre ingen forskel
Avatar billede sjh Nybegynder
20. marts 2007 - 16:09 #3
okææ det var også bare en ide.. men er du sikker på det er den kode du skal sende ?

du kunne eventuel prøve med et program som virker og så bruge en sniffer til at se hvad data der bliver sendt..
Avatar billede centauri Nybegynder
21. marts 2007 - 07:41 #4
Det skulle være det der skal sendes. Det orginal script ser således ud


#!bin/bash
i=1
while [ $i -lt 256 ] do
    echo INVITE sip:192.168.0.$i SIP/2.0^M >junk.txt
    echo f: sip:whoever@is.stupid^M >>junk.txt
    echo t: sip:enough@to.accept^M >>junk.txt 
    echo i: this@junk^M >>junk.txt 
    echo l: 0^M >>junk.txt 
    echo CSeq: 1 INVITE^M >>junk.txt
    echo ^M >>junk.txt
    cat junk.txt >/dev/udp/192.168.100.0.$i/5060
    i=$[$i+1]
done
Avatar billede sjh Nybegynder
21. marts 2007 - 09:40 #5
Ja ^M er vel <CR> eller <LF> i vb vil det så være vbCr eller vbLf så er det nok ikke vbCrLf du skal bruge men kun en af dem (vbCr eller vbLf)

husk også afslut:
Data.Text = Data.Text & vbCrLf & vbCr

eller

Data.Text = Data.Text & vbCrLf & vbLf
Avatar billede sjh Nybegynder
21. marts 2007 - 09:41 #6
Ja...

husk også afslut:
Data.Text = Data.Text & vbCr

eller

Data.Text = Data.Text & vbLf
Avatar billede sjh Nybegynder
21. marts 2007 - 09:43 #7
ellers prøv at finde ud af hvad tegn "^M" er..
Avatar billede sjh Nybegynder
21. marts 2007 - 10:04 #8
øhh nu husker du vel Connect... før du sender ik.. ;)

  With Winsock1
      .Protocol = sckUDPProtocol
      .LocalPort = 0
      .RemotePort = 5060
      .Connect "192.168.0.22" ' <- Connect
      .SendData Data.Text
  End With
Avatar billede sjh Nybegynder
21. marts 2007 - 10:15 #9
Private Sub Form_Load()

Dim strData As String

' her er det med (vbCr) <CR>
  strData = "INVITE sip:192.168.100.164 SIP/2.0 " & vbCr ' (^M)
  strData = strData & "f: sip:whoever@is.stupid " & vbCr ' (^M)
  strData = strData & "t: sip:enough@to.accept " & vbCr ' (^M)
  strData = strData & "i: this@junk " & vbCr ' (^M)
  strData = strData & "l: 0 " & vbCr ' (^M)
  strData = strData & "CSeq: 1 INVITE" & vbCr & vbCr ' (^M^M)

' eller med (vbLf) <LF>

'  strData = "INVITE sip:192.168.100.164 SIP/2.0 " & vbLf ' (^M)
'  strData = strData & "f: sip:whoever@is.stupid " & vbLf ' (^M)
'  strData = strData & "t: sip:enough@to.accept " & vbLf ' (^M)
'  strData = strData & "i: this@junk " & vbLf ' (^M)
'  strData = strData & "l: 0 " & vbLf ' (^M)
'  strData = strData & "CSeq: 1 INVITE" & vbLf & vbLf ' (^M^M)

  With Winsock1
      .Protocol = sckUDPProtocol
      .LocalPort = 0
      .RemotePort = 5060
      .Connect "192.168.100.178"
      .SendData strData
  End With
End Sub
Avatar billede centauri Nybegynder
21. marts 2007 - 10:20 #10
Nej det virker desværre heller ikke, så er lidt træls kunne nemlig være godt at kunne demonstrere hvor nemt en SIP telefon kan generes.
Avatar billede sjh Nybegynder
21. marts 2007 - 10:44 #11
Ja nu ved jeg ikke en skid om SIP.. men du skal nok være sikker på at alle adresser passer (whoever@is.stupid, enough@to.accept, this@junk) og jeg gå så udfra at de IP-adresser du skriver også passer.. den "Telefon" som skal modtage det.. virker den? :D prøv eventuel med et andet program for at se om "Telefonen" vil godtage de adresser du bruger.
Avatar billede centauri Nybegynder
21. marts 2007 - 11:08 #12
ja eksemplet skal virke som det står. er noget der var i et tysk computerblad. skrevet af en ingenør fra Snome Technology.

Adresserne checker den som sådan ikke på, det er bare noget tekst ligesom i email hvor du kan skrive hvad som helst i afsender.
Avatar billede centauri Nybegynder
22. april 2009 - 09:13 #13
Desværre ingen brugbare svar her så lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester