[gelöst] Asterisk verbinden

snoopy_spy

Neuer User
Mitglied seit
19 Mai 2007
Beiträge
108
Punkte für Reaktionen
0
Punkte
0
Hallo

Ich habe eine Frage, wie verbinde ich am besten 2 Asterisk Server?

Ich habe hier einen Asterisk Server, der einen SIP Trunk zu einem patton Device hat, mit ISDN Leitungen, und auf dem ca. 30 Extensions drauf sind (ca 11 User)

nun bekomme ich einen 2ten Asterisk Server dazu, der hat nur eine SIP Trunk zu einem VoIP Provider, und 6 Extensions (3 User)


Der 1te Asterisk soll der Hauptasterisk werden. (Was auch immer das heissen soll ... :) )
Ich möchte nun, das ich auf dem Hauptasterisk auch die Extensions des 2ten Asterisk sehen kann, ob die Telefonieren usw. Auch auf dem 2ten ASterisk sollte man die Extensions des ersten Servers sehen können.

Egal auf welchen Asterisk ein externes Gespräch reinkommt, dann soll je nach durchwahl diese an den richtigen Asterisk geleitet werden.
Ein manuelles weiterleiten von einem Asterisk zum andern aoll auch möglich sein.

Eventuell auch, das ich beim rasurufen, über den 2ten Asterisk gehen kann.


Der Hintergrund ist folgender. Der erste Asterisk steht bei uns hier am Lande und hat nicht so ne 100% stabile Internet leitung, der 2te Asterisk hat ne sehr stabile internetleitung, und bekommt deshalb nicht auch ne ISDN Leitung.

Die Gespräche sollen nur im Ausnahmefall über den 1ten Asterisk laufen (die Sprache) - Daten und Infos schon, da dieser 1te Asterisk eben eine schwächere Leitung hat.

Was kann ich nun alles machen, gibt es sachen, die nicht machbar sind (oder einen zuuuu großen aufwand verursachen würden?)
Und mit welchen Suchkriterien soll ich nun weiterarbeiten.

Besten dank an alle mal im vorhinein.
sn00py
 
Zuletzt bearbeitet:
Hallo,

zwei Asterisk verbinden geht am besten mit IAX (bzw. IAX2).

Mit der übergreifenden Statusabfrage wirds schwierig, siehe hier.
 
Hallo Ich habe nun eine zwei server mehr oder weniger erfolgreich verbunden.

Das heisst der 2te Asterisk Server verbindet sich per Trunk am ersten Asterisk Server.
Ich kann nun alle Anrufe vom Asterisk2 an Asterisk1 weiterleiten.

Allerdings wenn ich alles gleich mache, kann ich den Asterisk1 nicht an Asterisk2 verbinden.
Ich habe am Asterisk1 nun auch einen Trunk angelegt mit register, und am Asterisk2 einen dementsprechende IAX Extension - aber mit iax2 show registry sehe ich immer das es rejected wurde!
Code:
asterisk*CLI> iax2 show registry
Host                  dnsmgr  Username    Perceived             Refresh  State
x.x.x.x:4569    N       9099        <Unregistered>             60  Rejected

wo kann ich da was drehen?
Oder wie sehe ich warum das der fall ist?

wenn ich zum registry einen anderen port oder andere ip nehme, dann bekomme ich statt rejected einen anderen fehler, also prinzipielle findet er ihn also ...
 
host=dynamic hast Du?

Zwei Asterisk kann man über IAX übrigens auch ohne register verbinden. Siehe hier.
 
glaub habe ich nicht, brauche ich das?
Von einem zum anderen Asterisk laufts ja ohne probleme
Beide Asterisk haben eine fixe IP Adresse.
 
Wenn Du Dich registrieren willst, muss auf der anderen Seite host=dynamic gesetzt sein.

Am einfachsten geht es, jeden Asterisk beim anderen einmal als Server und einmal als Client anzulegen. Dann brauchst Du kein register. Im Dial verwendest Du dann immer das Peer. D.h. Du rufst quasi immer vom Client auf den Server, in beide Richtungen. So ist das in meinem Link von oben auch gemacht.
 
gerade nachgeschaut

host=dynamic steht drinnen

Wie kann ich nun rausfinden warum die registrierung nicht klappt?

Das ist die Extension in der iax2.conf
Code:
[9099]
deny=0.0.0.0/0.0.0.0
secret=9099iax9099
transfer=no
context=from-internal
host=dynamic
type=friend
port=4569
qualify=yes
dial=IAX2/9099
mailbox=9099@device
permit=0.0.0.0/0.0.0.0

und das der registry string am ersten asterisk
9099:[email protected]:4569

möchte es gerne hinbringen samt der registrierung.
 
möchte es gerne hinbringen samt der registrierung.

Das sollte auch ohne Registrierung laufen.

Haben beide Asteriske eine fest ip?

Was sagt den Asterisk auf dem cli, wenn es nicht geht?


Hier laufen 5 Asterisk im Verbund und jeder benutzt die Dialpläne des anderen mit.
 
am ersten Asterisk1 mache ich ein iax2 reload, dann kommt das :

Code:
asterisk*CLI> iax2 reload
  == Parsing '/etc/asterisk/iax.conf': Found
  == Parsing '/etc/asterisk/iax_general_additional.conf': Found
  == Parsing '/etc/asterisk/iax_general_custom.conf': Found
  == Parsing '/etc/asterisk/iax_registrations_custom.conf': Found
  == Parsing '/etc/asterisk/iax_registrations.conf': Found
  == Parsing '/etc/asterisk/iax_custom.conf': Found
  == Parsing '/etc/asterisk/iax_additional.conf': Found
  == Parsing '/etc/asterisk/iax_custom_post.conf': Found
       > doing dnsmgr_lookup for 'ip1.ip2.ip3.ip4'
    -- Seeding '999' at ip1.ip2.ip3.ip4:4569 for 60
       > doing dnsmgr_lookup for 'ip1.ip2.ip3.ip4'
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREQ
   Timestamp: 00007ms  SCall: 00005  DCall: 00000 [ip1.ip2.ip3.ip4:4569]
   USERNAME        : 9099
   REFRESH         : 60

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE
   Timestamp: 00007ms  SCall: 00013  DCall: 00000 [ip1.ip2.ip3.ip4:4569]
  == Loaded firmware 'iaxy.bin'
  == Parsing '/etc/asterisk/iaxprov.conf': Found
    -- Loaded provisioning template 'default'
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REGREJ
   Timestamp: 00007ms  SCall: 00001  DCall: 00005 [ip1.ip2.ip3.ip4:4569]
Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: ACK
   Timestamp: 00007ms  SCall: 00005  DCall: 00001 [ip1.ip2.ip3.ip4:4569]
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: PONG
   Timestamp: 00007ms  SCall: 00001  DCall: 00013 [ip1.ip2.ip3.ip4:4569]
Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: ACK
   Timestamp: 00007ms  SCall: 00013  DCall: 00001 [ip1.ip2.ip3.ip4:4569]
asterisk*CLI>


am zweiten asterisk bekomme ich dann das :

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00007ms SCall: 00005 DCall: 00000 [ipdesasterisk1:4569]
USERNAME : 9099
REFRESH : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: POKE
Timestamp: 00007ms SCall: 00013 DCall: 00000 [ipdesasterisk1:4569]
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00007ms SCall: 00005 DCall: 00001 [ipdesasterisk1:4569]
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00007ms SCall: 00013 DCall: 00001 [ipdesasterisk1:4569]
 
Zuletzt bearbeitet:
Du hast ein Usernamen/Passwort Problem. Asterisk 1 Debug sagt REGREJ,

also Registrierung abgewiesen.
 
aha,
was mich etwas verwundert hat, war das im ersten asteris immer RX und TX Pakete im Log sind, am zweiten Asterisk aber immer nur ein RX Paket ... war mir dann nicht sicher, obs ein Firewall problem oder so ist (obwohl eigetnlich alles aufgedreht ist)

wie komme ich dem auf die schliche?

ich habe mittlerweile schon 3 mal den usernamen eingegben und das passwort - alles neu angelegt, aber irgendwie mag er mich nicht ...

das steht in der iax_custom.conf vom asterisk2
Code:
[997]
deny=0.0.0.0/0.0.0.0
secret=997pass997
transfer=no
context=from-internal
host=dynamic
type=friend
port=4569
qualify=yes
dial=IAX2/997
mailbox=997@device
permit=0.0.0.0/0.0.0.0

und das im asterisk1
Code:
register=997:997pass997@ipdesasterisk2

username und passwörter sind 1:1 kopiert nur die ip ist geändert ... da kann man ja nix mehr falsch machen oder?
 
Was steht den in [ipdesasterisk2] ?
 
da steht die ip adresse des asterisk drinnen, wollte die nicht öffentlich machen, war im ersten mpost eh einen tag lang zu sehen ;) )

Aber kein name, sondern die offizielle ip des servers (Ist ein virtueller server der bei einem provider steht)
 
da steht die ip adresse des asterisk drinnen, wollte die nicht öffentlich machen, war im ersten mpost eh einen tag lang zu sehen ;) )

Aber kein name, sondern die offizielle ip des servers (Ist ein virtueller server der bei einem provider steht)
 
da steht die ip adresse des asterisk drinnen,

Dann schreibe halt irgendwas in das Feld.

Wenn Register gar nicht geht, schon mal versucht deinem 2. Server eine dyndns-Adresse zu verpassen und ohne Register zu arbeiten?

So mache ich das für meine Server die keine feste ip haben.

Asserdem solltest du in die Kontexte beider Asterisk ein auth=md5 einfügen, ggf. auf rsa

Was sagt Asterisk eigentlich bei einer Anwahl, wenn der Debug-Mode nicht eingeschaltet ist?
 
Verstehe nicht ganz was du meinst?

ich verwende die offzielle IP Adresse des Servers, die fix ist.
Warum sollte ich ihm eine dyndans adresse geben?

Ich glaube, er ist auch unter einem normalen DNS Eintrag zuerreichen, aber dachte mir, wenn ich direkt die IP Eingebe, dann sollte es doch eher weniger probleme geben wie wenn jedesmal die namensauflösung gemacht werden muß.

Ich verstehe es einfach nicht warum ers sich nicht verbinden kann, und es muß irgendwo wirgendwie doch rauszufinden geben wo das problem ist.
Mit dem iax2 set debug on, bekomme ich einfach zu wenig infos raus, um da wirklich vernünftig was rauszufinden.
 
Verstehe nicht ganz was du meinst?

ich verwende die offzielle IP Adresse des Servers, die fix ist.
Warum sollte ich ihm eine dyndans adresse geben?

Ich hatte weiter oben schon mal gefragt, ob beide Server eine feste ip haben. Wenn ja kannst du dir das Register sparen.

Um dir helfen zu können sind von deiner Seite einfach mehr Informationen erfoderlich. Einmal der Kontext den du auf der Gegenseite in deiner iax.conf verwendest. Passwörter und ip interessieren keinen, Usernamen schon, denn da gibt es einige mit besonderer Funktion und die Aussage fest ip ja oder nein.

Hast du noch weitere Einträge in der in deiner iax.conf? Es könnte sein, dass ein falscher Kontext angesprungen wird...
 
Ja, beide Asterisk haben eine FIXE IP

Asterisk1 steht bei uns hier im Büro, der ist hinter einer Firewall, wobei eine ganze IP Adresse nur für diesen Asterisk 1:1 durchgeschleift sind (Die Firewall hat 6 offizielle IP's und eine ist für ASterisk1 reserviert)

Asterisk2 steht bei einem Provider im inet, der hat auch eine fixe IP, und es ist nur der Asterisk auf diesem Rechner drauf.

Ich wollte es mit Register machen, da das register von Asterisk2 auf Asterisk1 sofort funktioniert hatte, und bisher super funktioniert, genau so wie ich es mir wünsche.

Wenn ich das gleiche nun von Asterisk1 auf Asterisk2 mache, dann funktioniert es nicht (ich habe dabei den Usernamen umgeändert) damit es keine Kollissionen gibt, aber das funktioniert nicht.

Und ich möchte es gerne zum laufen bringen, den meiner Meinung nach muß es doch whl wo Möglich sein, dem auf die schliche zu kommen, warum das nicht funktioniert (sprich warum er sich nicht registrieren kann) - ein zusätzlich logging oder wie auch immer.

Asterisk1 iax.conf
Code:
mailboxdetail=yes
tos=ef
disallow=all
allow=ulaw
allow=alaw
allow=slin
allow=g726
allow=gsm
allow=g723
allow=lpc10
allow=speex
allow=g722
codecpriority=host
delayreject=yes
jitterbuffer=no
minregexpire=60
maxregexpire=3600

register=997:997pass997@<IPdesAsterisk2>

language=de

[999]
deny=0.0.0.0/0.0.0.0
secret=999pass999
transfer=no
context=from-internal
host=dynamic
type=friend
port=4569
qualify=yes
dial=IAX2/999
mailbox=999@device
permit=0.0.0.0/0.0.0.0


[asteriskINet_in]
username=997
secret=997pass997
type=user
context=from-trunk

[asteriskINet_out]
host=<IPdesAsterisk2>
username=997
secret=997pass997
type=peer
context=from-trunk-iax2-asteriskINet_out

iax.conf des Asterisk2
Code:
mailboxdetail=yes
tos=ef
disallow=all
allow=ulaw
allow=alaw
allow=gsm


register=999:999pass999@<IPdesAsterisk1>

[997]
deny=0.0.0.0/0.0.0.0
secret=997pass997
transfer=no
context=from-internal
host=dynamic
type=friend
port=4569
qualify=yes
dial=IAX2/997
mailbox=997@device
permit=0.0.0.0/0.0.0.0



[asterisk_in]
username=999
secret=999pass999
type=user
context=from-trunk

[asterisk_out]
host=<IPdesAsterisk1>
username=999
secret=999pass999
type=peer
context=from-trunk-iax2-asterisk_out
 
Ja, beide Asterisk haben eine FIXE IP

Ausser einem Haufen unnötigen Einträgen sehe ich eigentlich im Moment keine Probleme.

Komentiere mal den zweiten und dritten Kontext von Asterisk 2 aus, so dass nur noch der erste aktiv ist.
Wenn das hilft musst du die Kontexte vertauschen.

Wenn das nicht hilft, lass mal die Registrierung weg und setze host= auf die Ip-Adresse. Dannach versuchst du einen Anruf und schaust mal zuerst ohne debug ob das geht und was Asterisk ggf. sagt.
Wenn es auch nicht geht nochmal schauen ob debug disesmal mehr von sich gibt.
 
... nur so als Info :

Habe den Asterisk 1 neu aufgesetzt von ASterisk 1.4 nun auf Asterisk 1.6 (keine ahnung obs nun am neu aufsetzen lag, oder am asterisk 1.6) auf jeden fall, jetzt geht alles so wie es sollte.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.