Asterisk und Sip EXpress router (0.9.0 (i386/linux)

kombjuder

IPPF-Promi
Mitglied seit
2 Nov 2004
Beiträge
3,086
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe Authentifizierungsprobleme wenn auf der Gegenseite ein Sip EXpress router (0.9.0 (i386/linux) steht.
Und zwar werden eingehende Gespräche von meinem Asterisk wegen fehlender Authentifizierung nicht angenommen oder zurückgewiesen.

Mit X-Lite werden die Anrufe angenommen.

Irgendwelche Ideen?
 
kombjuder schrieb:
Hallo,

ich habe Authentifizierungsprobleme wenn auf der Gegenseite ein Sip EXpress router (0.9.0 (i386/linux) steht.
Und zwar werden eingehende Gespräche von meinem Asterisk wegen fehlender Authentifizierung nicht angenommen oder zurückgewiesen.

Mit X-Lite werden die Anrufe angenommen.

Irgendwelche Ideen?

Kannst Du mal den SIP Context eines solchen eingehenden Providers posten ?
 
betateilchen schrieb:
Kannst Du mal den SIP Context eines solchen eingehenden Providers posten ?

Aber sicher doch:

Code:
asterisk*CLI>
<-- SIP read from 80.237.199.27:5060:
INVITE sip:[email protected]:5060 SIP/2.0
Max-Forwards: 10
Record-Route: <sip:80.237.199.27;ftag=as03b52c77;lr=on>
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK485d.ba9d4d02.0
Via: SIP/2.0/UDP 80.237.199.3:5060;branch=z9hG4bK6bb55150
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
To: <sip:[email protected]>
Contact: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Date: Tue, 03 Jan 2006 07:04:28 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Content-Type: application/sdp
Content-Length: 443

v=0
o=root 20495 20495 IN IP4 80.237.199.3
s=session
c=IN IP4 80.237.199.3
t=0 0
m=audio 10532 RTP/AVP 0 8 97 3 2 18 4 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:3 GSM/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
m=video 14724 RTP/AVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000

--- (15 headers 19 lines)---
Using INVITE request as basis request - [email protected]
Sending to 80.237.199.27 : 5060 (NAT)
Found peer '4918051257816549'
Reliably Transmitting (no NAT) to 80.237.199.27:5060:
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK485d.ba9d4d02.0;received=80.237.199.27
Via: SIP/2.0/UDP 80.237.199.3:5060;branch=z9hG4bK6bb55150
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
To: <sip:[email protected]>;tag=as27574429
Call-ID: [email protected]
CSeq: 102 INVITE
User-Agent: xxxxxx.li
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Max-Forwards: 70
Contact: <sip:[email protected]>
Proxy-Authenticate: Digest realm="asterisk", nonce="318706ca"
Content-Length: 0


---
Scheduling destruction of call '[email protected]' in 15000 ms
asterisk*CLI>
<-- SIP read from 80.237.199.27:5060:
ACK sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK485d.ba9d4d02.0
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
Call-ID: [email protected]
To: <sip:[email protected]>;tag=as27574429
CSeq: 102 ACK
User-Agent: Sip EXpress router(0.9.0 (i386/linux))
Content-Length: 0


--- (8 headers 0 lines)---
asterisk*CLI>
<-- SIP read from 80.237.199.27:5060:
INVITE sip:[email protected]:5060 SIP/2.0
Max-Forwards: 10
Record-Route: <sip:80.237.199.27;ftag=as03b52c77;lr=on>
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK585d.1b302ef5.0
Via: SIP/2.0/UDP 80.237.199.3:5060;branch=z9hG4bK1ac1feec
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
To: <sip:[email protected]>
Contact: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 103 INVITE
User-Agent: Asterisk PBX
Proxy-Authorization: Digest username="", realm="asterisk", algorithm=MD5, uri="sip:[email protected]:5060", nonce="318706ca", response="8d533eb101f36acc2a6582c217a795db", opaque=""
Date: Tue, 03 Jan 2006 07:04:28 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Content-Type: application/sdp
Content-Length: 443

v=0
o=root 20495 20496 IN IP4 80.237.199.3
s=session
c=IN IP4 80.237.199.3
t=0 0
m=audio 10532 RTP/AVP 0 8 97 3 2 18 4 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:3 GSM/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
m=video 14724 RTP/AVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000

--- (16 headers 19 lines)---
Using INVITE request as basis request - [email protected]
Sending to 80.237.199.27 : 5060 (non-NAT)
Found peer '4918051257816549'
Jan  3 08:04:28 NOTICE[11284]: chan_sip.c:10364 handle_request_invite: Failed to authenticate user "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
Reliably Transmitting (no NAT) to 80.237.199.27:5060:
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK585d.1b302ef5.0;received=80.237.199.27
Via: SIP/2.0/UDP 80.237.199.3:5060;branch=z9hG4bK1ac1feec
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
To: <sip:[email protected]>;tag=as27574429
Call-ID: [email protected]
CSeq: 103 INVITE
User-Agent: xxxxx.li
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Max-Forwards: 70
Contact: <sip:[email protected]>
Content-Length: 0


---
asterisk*CLI>
<-- SIP read from 80.237.199.27:5060:
ACK sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 80.237.199.27;branch=z9hG4bK585d.1b302ef5.0
From: "+49160974xxxxx" <sip:[email protected]>;tag=as03b52c77
Call-ID: [email protected]
To: <sip:[email protected]>;tag=as27574429
CSeq: 103 ACK
User-Agent: Sip EXpress router(0.9.0 (i386/linux))
Content-Length: 0


--- (8 headers 0 lines)---
Destroying call '[email protected]'
asterisk*CLI>
 
Das ist aber die SIP Debug Ausgabe der CLI - ich hatte nach dem SIP Context gefragt :roll:
 
betateilchen schrieb:
Das ist aber die SIP Debug Ausgabe der CLI - ich hatte nach dem SIP Context gefragt :roll:

Was verstehst du unter SIP Context?
 
kombjuder schrieb:
Was verstehst du unter SIP Context?

Der [Bereich] (=Context) in der sip.conf, der für eingehende Anrufe dieses Providers zuständig ist.
 
betateilchen schrieb:
Der [Bereich] (=Context) in der sip.conf, der für eingehende Anrufe dieses Providers zuständig ist.


register => 49180512578xxxxx:[email protected]/49180512578xxxxx

[49180512578xxxxx] ; europe-ip2
type=friend
username=49180512578xxxxx
fromuser=49180512578xxxxx
secret=geheim
context=lokal
host=siplogin.de
fromdomain=siplogin.de
canreinvite=no
language=de
nat=no
insecure=very
qualify=no
 
insecure=very #gibt es nicht
nat=no # Du bist sicher nicht hinter NAT ?
canreinvite=no # muß der Proxy unterstützen

Der Context wird für eingehende Anrufe nicht benutzt werden, sondern die Definitionen in den globals gelten. Daher geht es nicht.

Benutze
register => 49180512578xxxxx:geheim@proxy_siplogin/49180512578xxxxx

[proxy_siplogin]
type=peer
context=lokal
fromdomain=siplogin.de
host=siplogin.de
nat=yes



PS: zum Thema user, peer, friend
http://www.voip-info.org/wiki/view/Asterisk+SIP+user+vs+peer
 
Thomas007 schrieb:
insecure=very #gibt es nicht

:mrgreen:

Da liegst Du aber völlig falsch - diese Option gibt es sehr wohl :!:

http://www.voip-info.org/wiki/index.php?page=Asterisk+config+sip.conf schrieb:
SIP configurations - peers and clients
These variables can be configured for each SIP peer definition:

[...]
* insecure: Don't check host IP and port for peer (not user)
[...]
 
Thomas007 schrieb:
insecure=very #gibt es nicht
Oh, das ist noch asterisk 1.0.x und heisste jetzt invite
siehe http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+insecure

nat=no # Du bist sicher nicht hinter NAT ?

ja, bin ich

canreinvite=no # muß der Proxy unterstützen
wenn er's nicht tut passiert auch nichts.

Der Context wird für eingehende Anrufe nicht benutzt werden, sondern die Definitionen in den globals gelten. Daher geht es nicht.

Dann müsste es auch gehen weil in den globas ist entsprechendes definiert.
Warum wird er nicht benutzt?

Benutze
register => 49180512578xxxxx:geheim@proxy_siplogin/49180512578xxxxx

[proxy_siplogin]
type=peer
context=lokal
fromdomain=siplogin.de
host=siplogin.de
nat=yes
Warum type peer? Wenn ich den Text aus dem Link unten richtig verstanden habe, brauche ich ein friend. Ich bin immer an Erklärungen interessiert.
Und erkläre mir mal, wieso diese Probleme nur in Verbindung mit SIPExpress V0.9.0 auftritt und nicht mit anderer Software auf der Gegenseite?
sipgate oder voipch etc laufen klaglos.
 
Thomas007 schrieb:

Das war's.

Nur begriffen habe ich das nicht ganz, insbesondere warum es mit anderen Providern (noch) funktioniert.

In jedem Fall bedeutet das, dass ich alle type=friend auf type=peer umstellen muss.
 
insecure = very gibt es nicht mehr in der Doko zu 1.2.1
insecure gibt es sehr wohl.


/*! \brief insecure2str: Convert Insecure setting to printable string ---*/
static const char *insecure2str(int port, int invite)
{
if (port && invite)
return "port,invite";
else if (port)
return "port";
else if (invite)
return "invite";
else
return "no";
}

Das =very wird noch im SourceCode ausgewertet, dennoch sollte man es nach aktuellen Stand der Doko nicht verwenden. Es konnte durchaus aus dem SourceCode rausfliegen, wenn es nicht mehr in der Doko auftaucht.

if (!strcasecmp(v->value, "very"))
ast_set_flag(flags, SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
 
kombjuder schrieb:
Das war's.

Nur begriffen habe ich das nicht ganz, insbesondere warum es mit anderen Providern (noch) funktioniert.

In jedem Fall bedeutet das, dass ich alle type=friend auf type=peer umstellen muss.

Für Proxys bei denen Du Dich registrierst, reicht eine Section mit der Definition von host und fromdomain, bei Proxys die den Audiostrom nicht zwischen den Clients vermitten reicht auch nur host. insecure muß dazu nicht gesetzt werden.

user, bzw. friend brauchst Du eigentlich nur, wenn sich der Client mit username und password registrieren soll.
siehe auch sip show users, sip show peers und sip show registry.
 
Thomas007 schrieb:
user, bzw. friend brauchst Du eigentlich nur, wenn sich der Client mit username und password registrieren soll.

Das muss doch sicher Server und nicht Client heissen, denn sonst kann ich ja auf jeden Server zugreifen ohne registriert zu sein, bzw jeder der meinen Usernamen kennt, kann mein Konto beim Provider leerräumen.

Was mir aber immer noch nicht klar ist, wieso tritt dieses Problem derzeit nur mit dem SipExpress auf und nicht mit anderer Providersoft.

Vielleicht kann mich da ja noch jemand erleuchten?
 
kombjuder schrieb:
Das muss doch sicher Server und nicht Client heissen, denn sonst kann ich ja auf jeden Server zugreifen ohne registriert zu sein, bzw jeder der meinen Usernamen kennt, kann mein Konto beim Provider leerräumen.

Was mir aber immer noch nicht klar ist, wieso tritt dieses Problem derzeit nur mit dem SipExpress auf und nicht mit anderer Providersoft.

Vielleicht kann mich da ja noch jemand erleuchten?

Nein, ich meine Client in dem Zusammenhang zwischen register / SIP-Proxy. Der SIP-Proxy leitet der einen Anruf an Dich weiter. Er leitet den Anruf aber nur weiter, wenn Du zuvor ein register gemacht hast. Da gibst Du User, PW und Deine IP an und der SIP-Proxy weiß wie er Dich erreichen kann. Mißbrauch schwierig.

Du meinst out-calls, das ist aber wieder was anderes, in einer geeigneten Section definierst Du ein peer für out-calls. Dort gibst Du username und password an. Dieses wird benutzt wenn Du einen Anruf über den SIP-Proxy tätigen möchtest. DIAL(SIP/08913456@sip_out)
Mit den Einstellungen in register => ...hat das direkt nichts zu tun.

Wie ein Server sich verhält hängt von der Konfiguration ab. Dein Asterisk kannst Du ja auch von: nehme alle Anrufe an bis Registrierung mit pw erforderlich konfigurieren.

PS: Asterisk ist jetzt auch domain-aware
; Incoming INVITE and REFER messages can be matched against a list of 'allowed'
; domains, each of which can direct the call to a specific context if desired.
; By default, all domains are accepted and sent to the default context or the
; context associated with the user/peer placing the call.

Es wird klarer und transparenter, wenn Du mal für out-calls und in-calls jeweils eigene sections definierst und dort die nur notwendigen Parameter verwendest.
 
Thomas007 schrieb:
Du meinst out-calls, das ist aber wieder was anderes, in einer geeigneten Section definierst Du ein peer für out-calls. Dort gibst Du username und password an. Dieses wird benutzt wenn Du einen Anruf über den SIP-Proxy tätigen möchtest. DIAL(SIP/08913456@sip_out)
Mit den Einstellungen in register => ...hat das direkt nichts zu tun.

Das du die Einträge für aus und ein getrennt siehst, hättest du gleich sagen können, dann hätte ich das gleich verstanden.
Ich bin von meiner geposteten Version der sip.conf ausgegangen, desswegen habe ich das nicht gerafft.
 
kombjuder schrieb:
Das du die Einträge für aus und ein getrennt siehst, hättest du gleich sagen können, dann hätte ich das gleich verstanden.
Ich bin von meiner geposteten Version der sip.conf ausgegangen, desswegen habe ich das nicht gerafft.

OK, dann nur ein Mißverständnis.
 
Kostenlos!

Statistik des Forums

Themen
248,520
Beiträge
2,293,412
Mitglieder
378,018
Neuestes Mitglied
lg300