Asterisk und mehrere 1und1 Accounts

drego

Neuer User
Mitglied seit
12 Aug 2007
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Hey Gemeinde,

ich habe folgendes Problem mit meinem Asterisk Server. Ich habe ihn schon mehrere Wochen laufen und alles funktioniert prima. Nun möchte ich aber weitere 1und1 Accounts auf meinem Server einrichten. Allerdings habe ich da das Problem, dass Asterisk eingehende Anrufe nicht mehr den einzelnen Contexten zuordnen kann. Im Debug Modus kommen auch Aussagen, dass auf Rufnummer zzz kein Context existiert ... Der Witz ist aber, dass ich z.B. xxx anrufe. Hier mal meine sip.conf

Code:
[general]
context=default
srvlookup=yes
port = 5060
bindaddr = 0.0.0.0
language=de
disallow = all
allow = alaw,ulaw,gsm
nat = yes

register => xxx:[email protected]/xxx
register => yyy:[email protected]/yyy
register => zzz:[email protected]/zzz

[xxx]
type=peer
username=xxx
fromuser=xxx
secret=pass1
host=1und1.de
fromdomain=1und1.de
insecure=very
canreinvite=no
nat=no
maxexpirey=3600
defaultexpirey=3600
qualify=yes

[yyy]
type=peer
username=yyy
fromuser=yyy
secret=pass2
host=1und1.de
fromdomain=1und1.de
insecure=very
canreinvite=no
nat=no
maxexpirey=3600
defaultexpirey=3600
qualify=yes

[zzz]
type=peer
username=zzz
fromuser=zzz
secret=pass3
host=1und1.de
fromdomain=1und1.de
insecure=very
canreinvite=no
nat=no
maxexpirey=3600
defaultexpirey=3600
qualify=yes

special ;context:
[1und1-inbound]
type=peer
fromdomain=1und1.de
host=sip.1und1.de
context=1und1-inbound
qualify=yes

es existiert logischerweise noch ein context mit 1und1-inbound

ich habe schon vieles probiert: separate contexte, ...
hat alles nichts geholfen.

über schnelle hilfe wäre ich sehr dankbar!!!
drego

ps: wenn ihr noch was braucht an infos so gebt bescheid. noch der hinweis: ich nutze die aktuelle asterisk version
 
Deine ganze sip.conf ist ziemlich sinnlos - genauer: Du hast jede Menge unnötige und kontraproduktive parameter in Deinen Provider-Contexten. Weißt Du eigentlich genau, was Du da machst?

Ohne konkrete Log-Ausgaben ist es übrigens schwierig, Dir weiterzuhelfen. Deine Fehlerbeschreibungen sind einfach zu schwammig.

noch der hinweis: ich nutze die aktuelle asterisk version

in der aktuellen Asterisk Version gibt es z.B. "insecure = very" nicht mehr. Und auch das qualify=yes macht bei Providerkontexten keinen rechten Sinn.

Vielleicht solltest Du einfach mal ein bißchen Doku zu Asterisk lesen und/oder hier im Forum die SUche benutzen. Da könntest Du solche Hinweise, wie ich sie hier ansatzweise aufgezählt habe, auch selbst finden.
 
ich hab die tipps eigentlich vom das-asterisk-buch.de und hier aus dem forum ...
ich werd es gleich noch mal überarbeiten und bescheid geben

trotz deiner etwas angreifenden aussage
Weißt Du eigentlich genau, was Du da machst?
bin ich froh, dass sich einer dem problem annimmt

ich meld mich gleich noch mal
 
In der sip.conf sind auch sehr brauchbare und funktionierende Beispiele für Registrierungen.
 
ich bin noch am basteln ...
noch eine bescheidene frage:
bei nur ausgehenden gesprächen (also es sollen keine einkommenden gespräche abgearbeitet werden), benötigt man da den register befehl, oder reicht es, in der sip.conf nur einen providereintrag zu haben?
 
Mehrere 1&1-Konten

Nun möchte ich aber weitere 1und1 Accounts auf meinem Server einrichten. Allerdings habe ich da das Problem, dass Asterisk eingehende Anrufe nicht mehr den einzelnen Contexten zuordnen kann. Im Debug Modus kommen auch Aussagen, dass auf Rufnummer zzz kein Context existiert ... Der Witz ist aber, dass ich z.B. xxx anrufe. Hier mal meine sip.conf

Code:
[general]
...
register => xxx:[email protected]/xxx
register => yyy:[email protected]/yyy
register => zzz:[email protected]/zzz

[xxx]
type=peer
...
host=1und1.de

[yyy]
type=peer
...
host=1und1.de

[zzz]
type=peer
...
host=1und1.de

[1und1-inbound]
type=peer
fromdomain=1und1.de
host=sip.1und1.de
context=1und1-inbound
qualify=yes

es existiert logischerweise noch ein context mit 1und1-inbound

Mit type=peer legst du fest, dass ankommende Anrufe anhand der IP-Adresse aus dem host-Attribut zugeordnet werden. Die 1&1-Anrufe sollten also auf dem SIP-Anschluss [1und1-inbound] und damit im Kontext 1und1-inbound landen.

Allerdings authentifiziert sich der 1&1-Server nicht bei deinem Asterisk. Du musst also noch dafür sorgen, dass dein Asterisk Anrufe von der 1&1-IP-Adresse auch ohne Authentifizierung annimmt. Dazu würde ich mal insecure=port,invite probieren:

Code:
[1und1-inbound]
type=peer
host=sip.1und1.de
context=1und1-inbound
[COLOR="Blue"][B]insecure=port,invite[/B][/COLOR]

Ob der Anrufer xxx, yyy oder zzz angerufen hat, musst du dann im Dialplan im Kontext 1und1-inbound auswerten.

Wenn du die 1&1-Konten dagegen schon in der sip.conf unterscheiden möchtest, müsstest du mit type=friend bzw. type=user arbeiten.
 
ich bin zu blöd oder?
es geht wieder nicht und hab mich exakt der anleitung gehalten:
sip.conf
Code:
[general]
context=default
srvlookup=yes
port = 5060
bindaddr = 12.12.12.12
language=de

; ------------------------------------------------------------------------------------------------
; register
register => 123:[email protected]/123
register => 456:[email protected]/456

; ------------------------------------------------------------------------------------------------
; Daten fuer gehende Gespraeche

; sipgate.de
[123]
type=peer
username=123
fromuser=123
secret=pass
host=sipgate.de
fromdomain=sipgate.de
insecure=port,invite
canreinvite=no
nat=no
disallow=all
allow=ulaw

; 1und1.de
[456]
type=peer
username=456
fromuser=456
secret=pass
host=1und1.de
fromdomain=1und1.de
insecure=port,invite
canreinvite=no
nat=no
disallow=all
allow=ulaw

; ------------------------------------------------------------------------------------------------
; Daten fuer kommende Gespraeche

; 1und1.de
[1und1_de_in]
type=peer
fromdomain=1und1.de
host=1und1.de
disallow=all
allow=ulaw
context=ankommend

; sipgate.de
[sipgate_de_in]
type=peer
fromdomain=sipgate.de
host=sipgate.de
disallow=all
allow=ulaw
context=ankommend

; ------------------------------------------------------------------------------------------------
; Daten SIP Endgeraete

[101]
callerid=sip101 <101>
host=dynamic
domain=12.12.12.12
user=101
secret=pass
type=friend
mailbox=101
nat=yes
canreinvite=no
extension.conf
Code:
[general]
static=yes
writeprotect=no
; ------------------------------------------------------------------------------------------------
; gilt fuer alle angeschlossenen Endgeraete
[default]
include => lokal
;include => sipgate_de_out
include => 1und1_de_out
include => mailbox
include => echotest
include => uhrzeit

; ------------------------------------------------------------------------------------------------
; reine Sip Endgeraete
[lokal]
exten => _1XX,1,NoCDR()
exten => _1XX,n,Dial,SIP/${EXTEN}|55|Ttr

; ------------------------------------------------------------------------------------------------
; sonstige Asterisk Dienste
[mailbox]
exten => 10,1,Answer
exten => 10,n,Wait,1
exten => 10,n,VoiceMailMain(s${CALLERID(NUM)})
exten => 10,n,Hangup

[echotest]
exten => 20,1,Answer
exten => 20,n,Wait,1
exten => 20,n,Playback,demo-echotest
exten => 20,n,Echo
exten => 20,n,Playback,demo-echodone
exten => 20,n,Hangup

[uhrzeit]
exten => 30,1,Answer
exten => 30,n,Wait,1
exten => 30,n,SayUnixTime( | | k)
exten => 30,n,SayUnixTime( | | M)
;exten => 30,n,Playback,vm-and
;exten => 30,n,SayUnixTime( | | S)
;exten => 30,n,Playback,seconds
exten => 30,n,Hangup

; ------------------------------------------------------------------------------------------------
; Daten fuer gehende Gespraeche

; include ist auskommentiert
[sipgate_de_out]
exten = _0.,1,Dial,SIP/${EXTEN}@123|120

[1und1_de_out]
exten = _X.,1,Dial,SIP/${EXTEN}@456|120

; ------------------------------------------------------------------------------------------------
; Daten fuer kommende Gespraeche

[ankommend]
exten => 123,1,Dial,SIP/101|120
exten => 456,n,Dial,SIP/101|120

es kommt zu folgender aussage von der cli bei anruf auf die 1und1 nummer vom handy aus
Code:
    -- Executing [456@default:1] Dial("SIP/456-081d1cd0", "SIP/456@456|120") in new stack
    -- Called 456@456
    -- SIP/456-081c7a30 answered SIP/456-081d1cd0
    -- Packet2Packet bridging SIP/456-081d1cd0 and SIP/456-081c7a30
  == Spawn extension (default, 456, 1) exited non-zero on 'SIP/456-081d1cd0'
und am handy wird angesagt, dass keine message box gefunden werden konnte
ich benötige dringenst hilfe, wo hab ich den denkfehler?
 
Zuletzt bearbeitet:
Wenn du möchtest, dass Gespräche, die über 1&1 ankommen, im Kontext "ankommend" landen, muss host auf die IP-Adresse des 1&1-Servers zeigen. Und insecure=port,invite fehlt auch.

Code:
[general]
register => 456:[email protected]/456

[456]
type=peer
host=1und1.de
insecure=port,invite

[1und1_de_in]
type=peer
context=ankommend
[B][COLOR="Blue"]host=sip.1und1.de
insecure=port,invite[/COLOR][/B]

Mit deiner aktuellen Konfiguration landen die Anrufe aber im Kontext "default" und dann an dieser Stelle:

Code:
[1und1_de_out]
exten = _X.,1,Dial,SIP/${EXTEN}@456|120

Es wird also prompt versucht, über den SIP-Anschluss 456 wieder zu der Nummer 456 herauszuwählen. Du hast also wahrscheinlich eine Schleife programmiert.

Generell halte ich es für keine so gute Idee, den Standardkontext "default" für ausgehende Anrufe zu verwenden. Der Grund ist, dass es dann leicht passieren kann, dass Anrufe von außen ungewollt in einem abgehenden Kontext landen.

Dein Kontext "ankommend" scheint übrigens auch noch einen kleinen Fehler zu haben:

Code:
[ankommend]
exten => 123,1,Dial,SIP/101|120
exten => 456,[B][COLOR="Blue"]1[/COLOR][/B],Dial,SIP/101|120
 
Code:
[ankommend]
exten => 123,1,Dial,SIP/101|120
exten => 456,1,Dial,SIP/101|120
bist du dir sicher, dass da jeweils eine 1 hin muss?

eins hab ich auch noch nicht verstanden: warum landen die gespräche in default? ich hab den context doch auf ankommend gesetzt?!?

danke
 
Das mit der 1 ist schon richtig - jede neue extension muß zwingend mit prio 1 beginnen, egal wieviele extensions Du innerhalb eines Kontextes hast.

Dein Anruf landet in [default] weil er überhaupt nicht in einem Deiner sip.conf-Kontexte für 1und1 landet und deshalb automatisch nach [default] geschickt wird.

Asterisk-Grundlagen... :-Ö
 
Dein Anruf landet in [default] weil er überhaupt nicht in einem Deiner sip.conf-Kontexte für 1und1 landet und deshalb automatisch nach [default] geschickt wird.

??? wie jetzt ...
ich denke, wenn ich das in der sip.conf auf
Code:
[1und1_de_in]
type=peer
context=ankommend
host=sip.1und1.de
insecure=port,invite
geändert habe, funktioniert es dann ...

um bei der antwort "nein" gleich vorwegzugreifen, wie kann ich das denn dann umgehen mit dem default. so ist es doch hier im Kurs erklärt wurden.

thx
 
so ist es doch hier im Kurs erklärt wurden.

Aber nicht am Beispiel von 1und1 - und das ganz bewußt nicht.

Ändern kannst Du das, indem Du den Standard-Context für eingehende Anrufe, die nirgends zugeordnet werden, im [general] der sip.conf angibst.
 
leider versteh ich es nun gar nicht mehr. kannst du mir mal posten, wie das genau aussehen müsste, also nen beispiel geben.
Was ist denn an 1und1 so anders als bei normalen VoIP Anbieter (obwohl das nicht so wichtig ist, hauptsache ich bekomme das bald zum laufen)

MFG
drego
 
echt keiner, der mir mal für 1und1 nen spezielles beispiel zeigen kann, damit es so funktioniert wie ich es mir vorstelle???

liebe grüße
drego
 
Zuletzt bearbeitet:
Bisher hatte ich 1und1 nur zum Rauswählen benutzt und natürlich kein Problem. Mittlerweile rufen aber schon einige Leute auch auf meine 1und1-Nummern an. Dabei mußte ich feststellen, dass die Anrufe zwar alle auf meine Fritzbox gingen, aber Asterisk nur gelegentlich mal einen Anruf signalisierte.
insecure=port,invite in der sip. conf brachte auch keine Besserung, deswegen habe ich es wieder rausgelöscht.

Was aber etwas half, war die Zeile:
host=1und1.de
in
host=sip.1und1.de
zu ändern.
Immerhin kamen jetzt mehr Anrufe an, aber immer noch nicht alle.

Weil ich bei dus.net schon drei dus_in einrichten mußte, habe ich es auch mal für 1und1 probiert und zwei 1und1_in in die sip.conf geschrieben. Bisher kamen damit alle Anrufe an.
sip.conf schrieb:
[1und1_in]
type=peer
fromdomain=sip.1und1.de
host=sip.1und1.de
disallow=all
allow=alaw
context=ankommend
language=de

[1und1_in2]
type=peer
fromdomain=1und1.de
host=1und1.de
disallow=all
allow=alaw
context=ankommend
language=de
Kann das Jemand bestätigen?
Ob der Eintrag fromdomain nötig ist, habe ich nicht weiter überprüft.
 
Was aber etwas half, war die Zeile:
host=1und1.de
in
host=sip.1und1.de
zu ändern.
Immerhin kamen jetzt mehr Anrufe an, aber immer noch nicht alle.

:toilet: Die Variante host=1und1.de würde ich gleich vergessen; die wird wahrscheinlich in keinem Fall funktionieren.

:gruebel: Aber auch mit sip.1und1.de kann es ein Problem geben: Diese Domain zeigt – derzeit – auf zwei IP-Adressen, nämlich 212.227.15.197 und 212.227.15.231. Wenn Asterisk die sip.conf liest, merkt er sich meines Wissens nur eine der beiden Adressen. Wenn ein Anruf dann zufällig von der anderen Adresse kommt, hast du Pech gehabt.

Folgende Lösungsansätze sehe ich (habe selbst aber keinen davon genauso ausprobiert):

Ansatz 1: Peers für beide Adressen definieren

Wenn du für beide IP-Adressen je einen extra Peer-Eintrag in der sip.conf machst, sollte einer von beiden immer passen:

Code:
[1und1_inbound_1]
type=peer
host=212.227.15.197
context=1und1_in

[1und1_inbound_2]
type=peer
host=212.227.15.231
context=1und1_in

Falls allerdings 1&1 mal die IP-Adressen ändern sollte, muss die Konfiguration natürlich angepasst werden.

Ansatz 2: User statt Peer für ankommende Anrufe

Wenn du einen User-Eintrag definierst, werden ankommende Anrufe anhand des Benutzernamens zugeordnet. Die IP-Adresse ist dann egal.

Code:
[1und1_inbound]
type=user
username=[I]Rufnummer[/I]
context=1und1_in

In diesem Fall kannst du auch Inbound- und Outbound-Kanäle mit type=friend zusammenfassen.

Ansatz 3: Ankommende Anrufe über den Standardkontext behandeln

Wenn kein SIP-Kanal passt, landen die Anrufe im Standardkontext, den du in der sip.conf im Abschnitt [general] definiert hast. Selbstverständlich kannst du die Anrufe auch in diesem Kontext annehmen und z.B. anhand der Extension unterscheiden, über welches SIP-Konto der Anruf kommt.

Weil ich bei dus.net schon drei dus_in einrichten mußte, habe ich es auch mal für 1und1 probiert [...]
Bei dus.net ist halt auch dokumentiert, dass Anrufe über drei IP-Adressen kommen können (talos, zelos, helios). Wenn man Peers für alle drei Adressen definiert hat, kann man sich deshalb eigentlich sicher sein, dass jeder Anruf anhand der IP-Adresse zugeordnet werden kann.

Ob der Eintrag fromdomain nötig ist, habe ich nicht weiter überprüft.
Für ankommende Anrufe ist fromdomain irrelevant.
 
:toilet: Die Variante Ansatz 2: User statt Peer für ankommende Anrufe

Wenn du einen User-Eintrag definierst, werden ankommende Anrufe anhand des Benutzernamens zugeordnet. Die IP-Adresse ist dann egal.

Code:
[1und1_inbound]
type=user
username=[I]Rufnummer[/I]
context=1und1_in

In diesem Fall kannst du auch Inbound- und Outbound-Kanäle mit type=friend zusammenfassen.

Bahnhof ...
Kannst Du mal da ne Beispiel sip.conf die Komplett ist, hier her posten.
Bei mir will es einfach ni klappen
 
Du bist hier permanent am Rumjammern und bettelst um eine komplette sip.conf.

Hey - keiner weiß, was Du zwischenzeitlich von dem was Dir hier an Tipps gegeben wurde, wirklich mal umgesetzt und ausprobiert hast.

Du stellst Dich einfach hin und sagst immer wieder "Bei mir gehts nicht - bitte macht das mal für mich" - findest Du das eigentlich ok?


Dagegen hilft viel Lesen und Nachdenken!
 
Also ich stimme Betateilchen zu dass man hier mal einiges nachlesen muss um rauszufinden wie das alles geht, was das andere geht weiß ich nicht ob er recht hat.

Ich habe zwei Wochen gebraucht bevor mein erster Asterisk Server richtig funktioniert hat. In diesen zwei Wochen hab ich über Linux und Asterisk mehr gelernt als im letzten halben Jahr. Letzte Woche hab ich mir noch zwei Bücher über Linux gekauft um meinen Server noch besser einzustellen und abzusichern.

Asterisk ist nun mal OpenSource und das heißt in manchen Fällen kompliziert für den Anfänger, weil man sich sehr stark mit der Materie befassen muss. Wenn du deinen Server zum Laufen bringen willst musst du hier sehr viel suchen, lesen und probieren.

Da ich das alles sehr kompliziert fand hab ich vor einigen Monaten eine Anleitung geschrieben die du dort finden kannst: http://www.ip-phone-forum.de/showthread.php?t=129366

Dort sind alle relevanten Konfigurationen aufgelistet. Ich hab sogar diese Woche es geschafft die neueste Version zum Laufen zu bringen was mir im letzten halben Jahr nicht gelungen ist, da ich es auch nur gelegentlich probiert habe. Ich könnte ein neues Topic aufmachen um nicht so suchbegeisterten entgegenzukommen, die Admins würde es nerven. Ich werde daher erst mal heute mein altes Thema auf den Stand der Version 1.4.14 bringen und wenns den Admins wichtig genug erscheint bekomme ich ja vielleicht ein Sticky ;)
 
ihr habt es nicht verstanden oder wollt es einfach nicht verstehen:
- ich bin nicht blöd und hab einiges über asterisk gelesen
- zweites ist die anleitung von nimrod nicht gerade ideal, da man nicht unbedingt mit providern arbeiten muss, wenn man nur einen hat und es coden will
- ich bin meinen eigenen weg gegangen und hab herumgetüftelt.

Ich hab mir nun einen eigenen Callback Server mit AGI Scripten programmiert, der in einer mysql Datenbank nachschaut, ob das Telefonat kostenlos geführt werden kann (1und1 Flatrate). Dies hab ich für mehrere meiner Freunde gemacht, die unterschiedliche 1und1 Accounts haben. Zweitens unterstützt mein Server auch ein individuelles Kurzwahltelefonbuch für jedene Benutzer.

So, nun könnt Ihr mal sagen, wer hier blöd und faul ist!

Ich hab lediglich nachgefragt, da ich Eure Kurzkommandos nicht verstanden habe.

Liebe Grüße und verärgert
drego
 
Kostenlos!

Statistik des Forums

Themen
248,529
Beiträge
2,293,649
Mitglieder
378,035
Neuestes Mitglied
sr0211