[gelöst, dank kombjuder]IAX.conf: Wie Provider ein- und ausgehend konfigurieren?

MET

Mitglied
Mitglied seit
27 Okt 2004
Beiträge
682
Punkte für Reaktionen
0
Punkte
16
Im Asterisk-Kurs gibt es ein Beispiel, wie in iax.conf ein Provider nur ausgehend zu konfigurieren ist (VoipJet). Habe zuerst versucht ein- und ausgehend "in Anlehnung" an das Vorgehen in der sip.conf zu realisieren; dies geht so aber nicht. Mit Hilfe von Google versuchte ich dann ein Beispiel zu finden, das zeigt wie ein iax-Provider ein- und ausgehend richtig zu konfigurieren ist; dies brachte aber nichts Brauchbares.

Falls jemand hier auf seinem Asterisk einen iax-Provider aus- und eingehend konfiguriert hat, wäre ich um die vorhandenen Einträge in der iax.conf und der extension.conf dankbar.
 
Zuletzt bearbeitet:
Falls jemand hier auf seinem Asterisk einen iax-Provider aus- und eingehend konfiguriert hat, wäre ich um die vorhandenen Einträge in der iax.conf und der extension.conf dankbar.

Du kannst den Eintrag aus dem Forumbeispiel nehmen, brauchst aber noch eine Zeile

register => user:passwort@provider aber kein /irgendwas wie bei sip.
 
Zuerst einmal "Dankeschön" für Eure Hinweise.

Dies betreffend ".../irgendwas" ist etwas weniges was ich bei den Versuchen "in Ahnlehnung an Sip" irgendwann auch bemerkt habe; iax schluckt dies nicht bzw. der Account kann sich einfach nicht registrieren. Was ich jedoch nicht wusste ist, dass es anscheinend vollständig genügt diesen Teil wegzulassen; ich war mir nicht sicher, ob dort ev. einfach etwas anderes hätte eingetragen werden müssen.

Jetzt zum Konfigurationsbeispiel im Asteriskbuch. Bei dem wenigen, was ich mit Google gefunden habe, war ein Fall (fwd) bei dem in der iax.conf ein ein- und ein ausgehender Ast für das gleiche Account angegeben wurde. Ich nahm an, dass dies ev. etwas ähnliches ist wie im Asterisk-Kurs die beiden Einträge [sipgate] und [sipgate_in]. Im Falle von fwd musste weiter auch der Kontext (im Beispiel vom Asteriskbuch [ast1] oder [ast2]) zwingend mit der Account-Nr. bei fwd übereinstimmen. Vermutlich ist dies aber rein fwd speziefisch und nicht "allgemein gültig".

Weiter im Beispiel vom Asteriskbuch besteht ein Verweis:
context = test-telefone
Ist in der extension.conf unter diesem Kontext noch etwas Spezielles zu beachten oder kann dort "im gleichen Sinne" wie für die Sip-Accounts fortgefahren werden?

Falls der Asterisk Kurs irgend einmal fortgesetzt wird, wäre dies m.E. eine hilfreiche Vervollständigung.
 
Zuletzt bearbeitet:
Alle Versuche verliefen bisher negativ. Für die Tests ist das iaxLite Softphone am Asterisk als Extension 40 registriert. Als IAX-provider versuche ich es mit Simply-Connect; dieser ist auch am Asterisk registriert.
PHP:
Host                  dnsmgr  Username    Perceived             Refresh  State
91.xxx.xxx.xxx:4569   N       100yyy      77.zz.zz.zz:4569           60  Registered
Wie immer jetzt ein Anruf auf mein Account rein kommt, gibt es beim iaxLite keine Reaktion. Komisch ist auch, dass der Debugger überhaupt keine Informationen zu einem eingehenden Anruf liefert. Der gleiche Test mit Zoiper als iax-client für simply-connect funktioniert. Es scheint also am Asterisk zu liegen. Vielleicht kann jemand das mögliche Problem erkennen.

iax.conf:
PHP:
[general]
context=default
bindport=4569
bindaddr=77.xx.xx.xx
srvlookup=yes
useragent=MyDevice
disallow=all
allow=ulaw
allow=alaw
allow=ilbc  

register => 100yyy:[email protected]

[100yyy] 
type = friend
host = iax.simply-connect.de
username=100yyy
secret = blabla
context=incoming
disallow=all
allow=alaw
allow=ulaw
allow=ilbc

extension.conf:
PHP:
[general]
static=yes
writeprotect=no

[default]
include => Local
include => echotest
include => mailbox
include => mailbox_own

[Local]
; Erreichbarkeit Nebenstellen 30-39 SIP sicherstellen
exten => _3X,1,NoCDR()
exten => _3X,n,macro,ruf|SIP|${EXTEN}
; Erreichbarkeit Nebenstelle 40 IAX sicherstellen
exten => _4X,1,NoCDR()
exten => _4X,n,macro,ruf|IAX2|${EXTEN}

[incoming]
include => incoming_40_provider

[incoming_40_provider]
exten => 100yyy,1,macro,ruf|IAX2|40

Nachtrag: Vielleicht ist dies auch relevant. Der Testanruf erfolgte jeweils von der (sip-)Extension 30 zu meiner PSTN-Nummer bei einem Provider der bei Simply-Connect registriert ist.
 
Zuletzt bearbeitet:
Hallo kombjuder (und Grüsse nach Weil am Rhein von einem der auf der anderen Seite der Grenze gross geworden ist)

Der Makro müsste eigentlich demjenigen des Asterisk-Kurses entsprechen:
PHP:
[macro-ruf]
; Die Zeile 1 dient lediglich dazu, dass wir in der CLI eine Bestaetigung erhalten,
; dass wir an der richtigen Stelle angekommen sind
exten => s,1,NoOp(Wir sind im Macro ruf gelandet)
exten => s,n,Dial,${ARG1}/${ARG2}|28|r
exten => s,n,Goto,s-${DIALSTATUS}|1
exten => s-CHANUNAVAIL,1,wait,1
exten => s-CHANUNAVAIL,n,voicemail,u${ARG2}
exten => s-CHANUNAVAIL,n,Hangup
exten => s-NOANSWER,1,wait,1
exten => s-NOANSWER,n,voicemail,u${ARG2}
exten => s-NOANSWER,n,Hangup
 
Der Makro müsste eigentlich demjenigen des Asterisk-Kurses entsprechen:
PHP:
[macro-ruf]
[/QUOTE]

Wenn das so nicht funktioniert, musst du mal auf dem cli schauen, was asterisk da macht.

Wenn da nichts kommt ein iax2 debug.
 
Wenn da nichts kommt ein iax2 debug.
Wie weiter oben betreffend "iax2 set debug on" schon bemerkt:
Komisch ist auch, dass der Debugger überhaupt keine Informationen zu einem eingehenden Anruf liefert.
:confused: :confused: :confused:
Dies würde eher auf etwas bei simply-connect zeigen aber - wie auch schon erwähnt - mit Zoiper als iax-client funktioniert simply-connect.
 
Dies würde eher auf etwas bei simply-connect zeigen

mit iax2 debug müsstest du die ausgehenden Registrierungspakete sehen.
Stimmen darin Absender-ip und Empfänger-ip?
 
Habe iax2 debug on und die Verbosity ist auf 6 gesetzt. Sehen kann ich aber nur die div. "SRV lookup" der Sip-Accounts.
Beim "reload" wird die Registrierung angezeigt:
PHP:
-- Registered IAX2 to '91.xxx.xxx.xxx', who sees us as 77.zz.zz.zz:4569 with no messages waiting

Nachtrag: Könnte dies eines dieser NAT-Probleme sein im Zusammenhang mit der statischen IP des Asterisk. ???
 
Zuletzt bearbeitet:
Habe iax2 debug on und die Verbosity ist auf 6 gesetzt. Sehen kann ich aber nur die div. "SRV lookup" der Sip-Accounts.

Die iax2 debug ist nicht on, sonst müsstest du die Registrierungspakete sehen, die ausgetauscht werden.
Da du anscheinend einen vserver hast, hast du kein nat, damit auch kein nat problem.

Trage mal folgenden Kontext in deiner extensions.conf nach:

[default]
exten => _X.,1,macro,ruf|IAX2|40

Damit würdest du den Anruf einfangen, wenn deine Angaben in der iax.conf nicht zutreffen.
 
Trage mal folgenden Kontext in deiner extensions.conf nach:

[default]
exten => _X.,1,macro,ruf|IAX2|40
Dieser Tipp zeigt in die richtige Richtung :)

Vorab noch diese Information. Bei den Tests versuche ich das simly-connect Account entweder direkt anzurufen (Sip: IP zu IP, ohne Provider) oder über einen von mir dort registrierten neueren Provider (Voxox mit Nummer in USA) mit dem ich noch nicht viel Erfahrung gemacht habe. Bei den jetzt durchgeführten Tests zeigte sich, dass die Kapazität dieses Providers ziemlich begrenzt zu sein scheint, da vielmals einfach nur das Tonband kommt, dass der Teilnehmer nicht erreichbar sei. Dies scheint so aber nicht zu stimmen, da Simply-Connect beim Provider eingeloggt ist. Wenn ich nachfolgend jetzt sage, dass es via externen Provider geklappt hat, dann bedeutet dies mindestens ein Mal, aber oft dann auch aus besagtem Grund wieder nicht. Ich muss diese Tests ganz einfach nochmals mit einem zuverlässigeren Provider durchführen. Die Testanrufe zur USA-Nr erfolgen via Sipgate.de.

Obigen Befehl als erster in [Local] gesetzt, funktionieren IP zu IP und via Provider.

IP zu IP mit sip:[email protected]
PHP:
    -- Executing [100yyy@default:1] Macro("SIP/MyAccountAt.dyndns.org-08228668", "ruf|IAX2|40") in new stack
    -- Executing [s@macro-ruf:1] NoOp("SIP/MyAccountAt.dyndns.org-08228668", "Wir sind im Macro ruf gelandet") in new stack
    -- Executing [s@macro-ruf:2] Dial("SIP/MyAccountAt.dyndns.org-08228668", "IAX2/40|28|r") in new stack
    -- Called 40
    -- Call accepted by 85.xxx.xxx.xxx (format ulaw)
    -- Format for call is ulaw
    -- IAX2/40-1962 is ringing
    -- Hungup 'IAX2/40-1962'
  == Spawn extension (macro-ruf, s, 2) exited non-zero on 'SIP/MyAccountAt.dyndns.org-08228668' in macro 'ruf'
  == Spawn extension (macro-ruf, s, 2) exited non-zero on 'SIP/MyAccountAt.dyndns.org-08228668'
via Sipgate-Voxox funktionierte es auch habe aber diese Version nicht kopiert.
Dies war übrigens die einzige Version bei der IP zu IP funktionierte bei allen anderen Versuchen klappte dies nicht.

Als nächstes habe ich die [Local] Einträge in der bestehenden Extension.conf begonnen abzuändern. Funktioniert haben verschiedene Versionen wenn im folgenden Befehl

exten => _4X,n,macro,ruf|IAX2|${EXTEN}

die ${EXTEN} durch 40 ersetzt wurde. Die CLI zeigte von so einem sipgate-voxox Anruf folgendes:
PHP:
   -- Executing [*60019999999999@app30:1] Dial("SIP/30-08221030", "SIP/0019999999999@30_sipgatede1|45|r") in new stack
   -- Called 0019999999999@30_sipgatede1
   -- Accepting AUTHENTICATED call from 91.xxx.xxx.xxx:
      > requested format = ulaw,
      > requested prefs = (ulaw|alaw|gsm|g726|ilbc),
      > actual format = alaw,
      > host prefs = (alaw|ulaw|ilbc),
      > priority = mine
   -- Executing [100yyy@incoming:1] Macro("IAX2/100yyy-10374", "ruf|IAX2|40") in new stack
   -- Executing [s@macro-ruf:1] NoOp("IAX2/100yyy-10374", "Wir sind im Macro ruf gelandet") in new stack
   -- Executing [s@macro-ruf:2] Dial("IAX2/100yyy-10374", "IAX2/40|28|r") in new stack
   -- Called 40
   -- SIP/30_sipgatede1-08224fa8 is making progress passing it to SIP/30-08221030
   -- Call accepted by 85.zzz.zzz.zzz (format alaw)
   -- Format for call is alaw
   -- IAX2/40-13663 is ringing
 == Spawn extension (app30, *60019999999999, 1) exited non-zero on 'SIP/30-08221030'
   -- Hungup 'IAX2/40-13663'
 == Spawn extension (macro-ruf, s, 2) exited non-zero on 'IAX2/100yyy-10374' in macro 'ruf'
 == Spawn extension (macro-ruf, s, 2) exited non-zero on 'IAX2/100yyy-10374'
   -- Hungup 'IAX2/100yyy-10374'

Frage: Weshalb geht dies hier nicht mit ${EXTEN} ???

Zum Schluss noch dies: Der iax-Debugger scheint aus irgend einem Grund bei mir nicht zu funktionieren. Der sip-Debugger hingegen ist ok.

Nachtrag:
Habe jetzt noch mit einem anderen Provider getestet und siehe da alles funktioniert normal! Dies auch mit der ursprünglichen Extension.conf.

Als Kontext für das Account scheint es ein Muss zu sein die Account-Nr. einzutragen, bei mir also diejenige von simply-connect 100yyy. Wird dies geändert funktioniert es nicht mehr.

Fazit: Wenn Tests nicht funktionieren unbedingt auch die Testanordnung mehrfach hinterfragen.

Bleibt schlussendlich nur weshalb bei mir der iax-debugger nichts anzeigt obwohl die CLI bestätigt, dass er eingeschaltet ist :confused::confused::confused:

Vielen Dank, kombjuder, für Deine Hilfe!

Grüsse ans Dreiländereck aus K'nopel/I'bul
 
Zuletzt bearbeitet:
@Admin: Vielleicht kann die nachfolgende Zusammenfassung in Form eines How-to zugänglich gemacht werden.

In Anlehnung an bzw. in Ergänzung von Betateilchen's Asterisk-Kurs:

iax.conf:
PHP:
[general]
...
(wie im Asterisk-Kurs)


register => 100yyy:[email protected]
; Anders als bei sip darf am Ende dieses Befehls
; kein "/irgendwas" angehängt werden


[100yyy]
; anders als bei sip muss der Kontext für diesen Provider 
; zwingend die Account-Nr sein.
; Ein Kontext bspw. in der Art [simplyconnect1] funktioniert nicht.
; Je nach Provider kann dies anders sein.
; Für fwd muss dieser Kontext anscheinend [iaxfwd] sein; siehe dazu bspw. 
;"http://forum.voxilla.com/asterisk-support-forum/iax-conf-fwd-11736.html".
; Dies mit fwd habe ich jedoch nicht selbst überprüft.
type = friend
host = iax.simply-connect.de
username=100yyy
secret = geheim
context=incoming
disallow=all
allow=alaw
allow=ulaw
allow=ilbc


[40]
....
(wie in Asterisk-Kurs)

Extension.conf:
PHP:
[incoming]
exten => 100yyy,1,macro,ruf|IAX2|40
; Aus irgend einem Grund muss hier die Variable ${EXTEN} 
; durch einen Wert ersetzt werden. Der Befehl
; exten => 100yyy,1,macro,ruf|IAX2|${EXTEN}
; funktioniert in diesem Falle nicht

; Outgoing müsste in Analogie wie im Asterisk-Kurs für VoipJet gehen.
; Habe dies jedoch nicht getestet.
 
Zuletzt bearbeitet:
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.