.titleBar { margin-bottom: 5px!important; }

SIP - versteh ich das richtig

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von NebuK, 4 März 2005.

  1. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    so hallo nochmal ...

    nachdem ich den MP3Player command besigt hab wollte ich nun mal fragen ob ich das ganze sip zeugs eigentlich richtig verstehe:

    ich koennte mein asterisk so konfigurieren dass er einen port xy nach aussen aufmacht, und jemand anderes koennte mit meiner ip (und z.b. dem namen meines sip-"users") bei mir anrufen und asterisk wuerde dann (wenn er denn richtig konfiguriert ist) den anruf an eben diesen SIP user weiterleiten?

    danke mal soweit

    - dario
     
  2. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,281
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    Das ist die Basisfunktion eines SIP Gateways ;)

    jo
     
  3. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    okidoki ... ich hab jetzt mal die beiden ports (auf udp und tcp) nach aussen aufgemacht und ein wenig rumgetestet ... hier erstmal meine configs

    Code:
    [isdn]
    exten => _X.,1,Dial(SIP/phone1,10)
    exten => _X.,2,Wait(5)
    exten => _X.,3,Wait(5)
    exten => _X.,4,Wait(2)
    exten => _X.,5,Answer()
    exten => _X.,6,Wait(1)
    exten => _X.,7,Goto(vmail_int,s,1)
    
    
    [sip]
    exten => _X.,1,Dial(CAPI/@50:${EXTEN},60,r)
    exten => 1,1,Goto(vmail_int,s,1)
    
    (die is natuerlich noch groesser ... aber der rest is ja unwichtig) und

    Code:
    [general]
    port = 5060 ; Port to bind to
    bindaddr = 0.0.0.0 ; Address to bind to
    ;  context = sipin ;default Default for incoming calls
    disallow=all
    allow=ulaw
    
    
    [phone1]
    type=friend
    host=dynamic
    secret=daddel
    dtmfmode=inband ; Choices are inband, rfc2833, or info
    context=sip
    
    jetzt die frage: wie krieg ichs hin dass alle ueber SIP einkommenden (und sie kommen schon an) calls einfach an phone1weitergeleitet werden? ich hab schon probiert in der sip.conf [general] context = sipin zu setzen und dann in der extensions.conf ein [sipin] mit exten => _X.,1,Dial(SIP/phone1,10) reinzuhaun ... ohne erfolg. auf der gegenseite wird von kphone ein 'invalid call' geworfen.
     
  4. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hm ... ich glaube ich konnte das problem jetzt ein wenig genauer lokalisieren. hier ist der debug output von asterisk wenn jemand ueber sip anruft

    Code:
    Sip read: 
    INVITE sip:phone1@hustler-server.dyndns.org SIP/2.0
    Via: SIP/2.0/UDP 80.135.96.234;branch=z9hG4bK3521531E
    CSeq: 2765 INVITE
    To: <sip:phone1@hustler-server.dyndns.org>
    Content-Type: application/sdp
    From: "Stefan Knoblich" <sip:stkn@tuxtv.dyndns.org>;tag=1A1B0132
    Call-ID: 1649827267@80.135.96.234
    Subject: sip:stkn@tuxtv.dyndns.org
    Content-Length: 187
    User-Agent: kphone/4.1.0
    Contact: "Stefan Knoblich" <sip:stkn@80.135.96.234;transport=udp>
     
    v=0
    o=username 0 0 IN IP4 80.135.96.234
    =The Funky Flow
    c=IN IP4 80.135.96.234
    t=0 0
    m=audio 32902 RTP/AVP 0 97 3
    a=rtpmap:0 PCMU/8000
    a=rtpmap:3 GSM/8000
    a=rtpmap:97 iLBC/8000
     
    11 headers, 9 lines
    Ignoring this request
    edward*CLI> 
     
    Sip read: 
    ACK sip:phone1@hustler-server.dyndns.org SIP/2.0
    Via: SIP/2.0/UDP 80.135.96.234;branch=z9hG4bK3521531E
    CSeq: 2765 ACK
    To: <sip:phone1@hustler-server.dyndns.org>;tag=as0ac7bbd2
    From: "Stefan Knoblich" <sip:stkn@tuxtv.dyndns.org>;tag=1A1B0132
    Call-ID: 1649827267@80.135.96.234
    Content-Length: 0
    User-Agent: kphone/4.1.0
    Contact: "Stefan Knoblich" <sip:stkn@80.135.96.234;transport=udp>
     
     
    9 headers, 0 lines
    Destroying call '1649827267@80.135.96.234'
    
     
  5. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    hrmm... eigentlich sollte das mit dem context = sipin genau so tun. Tu hast asterisk auch richtig neu gestartet?

    Was den sip-debug anbelangt: könntest Du mal ohne sip debug mal das noch posten was asterisk sonst so auf dem CLI an meldungen rauswirft, wenn Du einen anruf von extern reinschickst?
     
  6. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hm ...

    ich habs jetzt mit folgenden zum funktionieren gebracht (also dass mein sip phone namens 01 angerunfen wird)

    [sipin]
    exten => 01,1,Dial(SIP/01,10)
    exten => 01,2,Goto(vmail_int,s,1)
    exten => phone1,1,Dial(SIP/01,10)
    exten => phone1,2,Goto(vmail_int,s,1)

    allerdings ... bekomm ich anscheinend kein ton ueber die leitung ... allerdings kann das hier gradeben auch an der gegenseite liegen. waer klasse wenn jemand mal testen koennte: 01@nebuk.homelinux.org oder phone1@nebuk.homelinux.org ... kann sein dass nur eins davon funktioniert :/

    danke mal soweit :)
     
  7. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hm ok ... angerufen werden kann ich jetzt zwar - mein softphone klingelt auch. nur danach stille. hier erstmal meine netzwerkarch:

    asterisk server (mit isdn karte, ist gleichzeitig auch router) --> client (der softphone rennen hat und nur den router eingetragen hat - also keine direct conn zum inet)

    jetzt stellt sich das problem wie folgend dar: ich hab auf dem router(=* server) ports 5060 auf tcp und udp und die ports 10000 bis 20000 (laut rtp.conf) auf tcp und udp freigegeben. incoming calls ueber sip kommen wie gesagt bis zum softphone durch. nur von kommunikation kann keine rede sein. hier ist der output von asterisk wenn ich den call annehmen:

    Code:
        -- Saved useragent "SJLabs-SJphone/1.30.256b" for peer 01
        -- Executing Dial("SIP/sip.ram.rwth-aachen.de-08135428", "SIP/01|10") in new stack
        -- Called 01
        -- SIP/01-f422 is ringing
        -- SIP/01-f422 answered SIP/sip.ram.rwth-aachen.de-08135428
        -- Attempting native bridge of SIP/sip.ram.rwth-aachen.de-08135428 and SIP/01-f422
    Mar  4 20:54:03 WARNING[29273]: rtp.c:1405 ast_rtp_bridge: codec0 = 269 is not codec1 = 2, cannot native bridge.
      == Spawn extension (sipin, 01, 1) exited non-zero on 'SIP/sip.ram.rwth-aachen.de-08135428'
    

    danke schonmal fuers lesen
     
  8. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    codec0 = 269 is not codec1 = 2,

    nja, ich würde dann mal ein paar codecs mehr als nur ulaw zulassen ...
     
  9. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn ich das jetzt richtig entziffere heisst das:

    die eine Seite (269) kann
    G723
    ulaw
    alaw
    G729A

    die andere Seite (2) kann
    GSM

    ein 'allow=ulaw' bzw alaw sollte da schon reichen.
     
  10. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    habe zur zeit allow=all in der sip.conf [general]

    ich denke das problem liegt irgendwie darin dass asterisk versuch deine direkte verbinden zwischen meinem sip client (lan-interne class c ip) und der gegenseite herzustellen was fehlschlaegt (siehe "-- Attempting native bridge of [...]"). die frage ist hier: muss man asterisk hier irgendwie umbauen um media-proxy zu spielen oder aehnliches?
    (allerdings wenn das tatsaechlich so sein sollte verstehe ich nicht warum asterisk nicht tatsaechlich alles ueber sich laufen laesst).


    vielen dank auf jeden fall fuer die hilfe bis dato :)
     
  11. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    'allow=all' funktioniert glaube ich nicht so wie man es erwartet. Zumindest hab ich da sowas in Erinnerung. Mach besser erst 'disallow=all' und dann allow fuer ein paar codecs.
     
  12. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    sodale ....

    ich hab jetzt mal disallow=all und allow=ulaw allow=alaw reingehaun (natuerlich mit newlines) - is das soweit korrekt? (ich bekomme immernoch den gleichen fehler - kein audio auf beiden seiten)

    danke aber mal trotzdem!
     
  13. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    evtl. noch ein allow=gsm (je nachdem was die gegenseite so an codecs verwendet) und bei dem lokalen sip-teilnehmer noch ein canreinvite=no, damit asterisk im medienstrom drinbleibt und nicht versucht die beiden endpunkte direkt miteinander zu verbinden
     
  14. NebuK

    NebuK Neuer User

    Registriert seit:
    16 Jan. 2005
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ok ... mit allow=gsm drin und canreinvite=no nat=yes in beidem ([general] und sektion fuer mein phone) funktionierts jetzt - danke!
     
  15. jui

    jui Mitglied

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    229
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    canreinvite=no nat=yes

    Das wäre jetzt auch mal mein Tip gewesen, wobei interessant wäre ob nat=yes und canreinvite=yes auch funktioniert. Aber ich nehme an, dass hier zwingend der asterisk transkodieren muss und eine direkte verbindung wohl nahezu unmäglich ist, ausser der softclient kann irgendwie native, also von sich aus, mit nat korrekt umgehen.