IAX ankommend: No such context/extension

Ralph*

Mitglied
Mitglied seit
7 Mrz 2006
Beiträge
367
Punkte für Reaktionen
2
Punkte
18
Ich habe unseren Asterisk bei mehreren Providern (dus.net, Portunity, fwd, IAXtel) registriert. Dass IAXtel seit Wochen nicht erreichbar ist, soll hier mal außen vor bleiben.

Bei Portunity erhalte ich im iax debug die Meldung "No such context/extension", die anderen funktionieren.

Um eingehende Gespräche zu simulieren, führe ich einen "ENUM-Test" unserer Nummern auf e164.org durch. Dies hat zur Folge, dass e164.org versucht, uns zu erreichen. Somit habe ich eingehende Gespräche...

Über dus.net funktioniert alles bestens:

iax debug:
Code:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00007ms  SCall: 00235  DCall: 00000 [83.125.8.46:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (alaw)
   CALLING NUMBER  : 0016049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   USERNAME        : 000387xxxxxx
   FORMAT          : 8
   CAPABILITY      : 57352
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  14:27:52

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00003ms  SCall: 00009  DCall: 00235 [83.125.8.46:4569]
   AUTHMETHODS     : 3
   CHALLENGE       : 664728206
   USERNAME        : 000387xxxxxx

Mit Portunity funktioniert es leider nicht:

Code:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00018ms  SCall: 00007  DCall: 00000 [82.139.223.1:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (ulaw|g729|gsm|ilbc|alaw|g726)
   CALLING NUMBER  : 16049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   FORMAT          : 4
   CAPABILITY      : 64798
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  14:28:00

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REJECT 
   Timestamp: 00008ms  SCall: 00003  DCall: 00007 [82.139.223.1:4569]
   CAUSE           : No such context/extension
   CAUSE CODE      : 3

In beiden Fällen ist die "called number" s, es sollte also nach meinem Verständnis funktionieren. Ein Unterschied ist, dass im Fall von dus.net ein "Username" übertragen wird (unser Benutzername), bei Portunity aber nicht.

Hier sind noch die iax.conf (vollständig) und extensions.conf (Ausschnitt):

Code:
[general]
jitterbuffer=yes
language=de
disallow=all
allow=alaw
allow=ulaw
allow=gsm

register => benutzer:[email protected]
register => benutzer:[email protected]
register => benutzer:[email protected]
register => benutzer:[email protected]
register => benutzer:[email protected]

[guest]
type=user
context=intern
callerid="IAX Gastzugang"

[000387xxxxxx]
username=benutzer
secret=geheim
type=friend
host=proxy.dus.net
context=from-dusnet-iax
notransfer=no
qualify=no
disallow=all
allow=alaw

[iaxtel]
type=user
context=from-iaxtel
auth=rsa
inkeys=iaxtel

[iaxfwd]
type=user
context=from-iaxfwd
auth=rsa
inkeys=freeworlddialup
disallow=all
allow=ulaw

[iaxport]
type=friend
host=iax.iaxport.de
username=benutzer
secret=geheim
peercontext=iaxport
context=from-iaxport
notransfer=yes

[iaxport-outbound]
type=peer
username=benutzer
secret=geheim
host=iax.iaxport.de

Code:
[from-dusnet-iax]
; ***********************************************
; ankommende Gespraeche von DusNet
; ***********************************************
exten => s,1,Macro(inhousecall,66)
exten => s,2,Hangup()

[from-iaxtel]
; ***********************************************
; ankommende Gespraeche von IAXtel
; ***********************************************
exten => 1700983xxxx,1,Macro(inhousecall,66)
exten => 1700983xxxx,2,Hangup()

[from-iaxport]
; ***********************************************
; ankommende Gespraeche von Portunity
; ***********************************************
exten => s,1,NoOp("Extension ${EXTEN} von Portunity")
exten => s,2,Macro(inhousecall,66)
exten => s,3,Hangup()

[from-iaxfwd]
; ***********************************************
; ankommende Gespraeche von fwd
; ***********************************************
exten => 829xxx,1,Macro(inhousecall,66)
exten => 829xxx,2,Hangup()

exten => 829yyy,1,Macro(inhousecall,67)
exten => 829yyy,2,Hangup()

Warum wird der Context [from-iaxport] bei einem eingehenden Gespräch nicht gefunden? Oder deute ich die Fehlermeldung falsch?

Die NoOp-Zeile in [from-iaxport] wird nicht ausgeführt, er scheint also den Context nicht zu finden.

Danke für jede Hilfe...
Ralph
 
Zuletzt bearbeitet:
Leg mal einen Context [default] mit extension "s" an und teste, ob der Anruf dort landet. Dann sehen wir weiter.
 
betateilchen,

danke für die schnelle Antwort! Im (bereits bestehenden) Context [default] habe vor den includes eine extension s eingefügt und ein Reload durchgeführt:

Ausschnitt:
Code:
miner*CLI> show dialplan
[ Context 'default' created by 'pbx_config' ]
  's' =>            1. NoOp("Extension ${EXTEN} von Portunity (default)") [pbx_config]
                    2. Macro(inhousecall|66)                      [pbx_config]
                    3. Hangup()                                   [pbx_config]
  Include =>        'notruf'                                      [pbx_config]
  Include =>        'internfax'                                   [pbx_config]
  Include =>        'coldcalls'                                   [pbx_config]
  Include =>        'intern'                                      [pbx_config]
  Include =>        'ruml'                                        [pbx_config]
  Include =>        'echotest'                                    [pbx_config]
  Include =>        'zeitansage'                                  [pbx_config]
  Include =>        'checkmailbox'                                [pbx_config]
  Include =>        'musica'                                      [pbx_config]
  Include =>        'verboten'                                    [pbx_config]
  Include =>        'to-capi'                                     [pbx_config]
  Include =>        'to-dusnet-iax'                               [pbx_config]
  Include =>        'to-IAXtel-iax'                               [pbx_config]
  Include =>        'to-iaxport'                                  [pbx_config]
  Include =>        'to-fwd-iax'                                  [pbx_config]

Aber auch diese extension wird wohl nicht angesprungen:
Code:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00018ms  SCall: 00107  DCall: 00000 [82.139.223.1:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (ulaw|g729|gsm|ilbc|alaw|g726)
   CALLING NUMBER  : 16049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   FORMAT          : 4
   CAPABILITY      : 64798
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  16:33:14

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REJECT 
   Timestamp: 00012ms  SCall: 00002  DCall: 00107 [82.139.223.1:4569]
   CAUSE           : No such context/extension
   CAUSE CODE      : 3

Ralph
 
Zuletzt bearbeitet:
Noch als kurze Anmerkung:

Wäre es denkbar, dass die 2 Einträge für Portunity [iaxport] und [iaxport-outbound] in der iax.conf für dieses Verhalten verantwortlich sind? Ich hätte das eh gerne vereinfacht, weiß aber ehrlich gesagt nicht wie...

Es sollte doch auch möglich sein, einen einzigen Eintrag für ein- und ausgehende Gespräche zu verwenden. Die verwendete Konfiguration habe ich aus der FAQ von Portunity...

Edit:
Auch wenn ich zusätzlich in der iax.conf bei [iaxport-outbound] eine Zeile context=from-iaxport einfüge, ändert sich nichts. Der Fehler "No such context/extension" bleibt.

Reicht denn ein Reload nach Änderungen an der iax.conf oder muss ich neu starten? Ich habe da etwas im Hinterkopf, will aber das Produktivsystem nicht unnötig rebooten.

Edit 2: Auch ein Rebooten (um diese Uhrzeit telefoniert hier eh keiner mehr) hat keine Änderung ergeben.

Ralph
 
Zuletzt bearbeitet:
Ralph* schrieb:
Wäre es denkbar, dass die 2 Einträge für Portunity [iaxport] und [iaxport-outbound] in der iax.conf für dieses Verhalten verantwortlich sind?

Das hab ich glatt übersehen :mrgreen:

Tausche mal die Reihenfolge der beiden Contexte in der iax.conf :D
 
betateilchen,

auch ein Tauschen der Contexte (jetzt steht [iaxport-outbound] vor [iaxport]) und ein Reboot hat nichts gebracht, der Fehler besteht weiterhin.

Ralph
 
mach Dir mal eine neue IAX.conf, in der Du nur den einen account konfigurierst. Ich hab leider keinen Account bei dem Provider, um Dein Problem hier nachzubauen.
 
betateilchen,

auch eine kurze iax.conf (siehe unten) ändert nichts.

Ich werde das wohl mal an den Support von Portunity schicken, mal sehen, was die dazu meinen.

Code:
[general]
jitterbuffer=yes
language=de
disallow=all
allow=alaw
allow=ulaw
allow=gsm

register => benutzer:[email protected]

[guest]
type=user
context=intern
callerid="IAX Gastzugang"

[iaxport]
type=friend
host=iax.iaxport.de
username=benutzer
secret=geheim
peercontext=iaxport
context=from-iaxport
notransfer=yes


Edit: Ticket bei Portunity ist offen... bin gespannt!
 
Zuletzt bearbeitet:
Ralph* schrieb:
[guest]
context=intern

Dein Gast Kontext nimmt den Anruf an, hast du auch einen Kontext intern, von dem du in deinem guest-Kontext schreibst?
 
kombjuder,

mein Gast-Context nimmt den Anruf an???

Ich habe einen Context [intern], dort aber keine extension s definiert. Das könnte also der Fehler sein. Dort werden (wie in betateilchens Kurs gelernt) die internen SIP-Verbindungen untereinander behandelt.

Wie kann ich es denn erreichen, dass eingehende Gespräche von Portunity den Context [iaxport] der iax.conf - und somit den Context [from-iaxport] der extensions.conf - verwenden?

Bei dus.net und fwd geht es doch auch...

Ich gestehe, dass ich noch nicht durchschaut habe, wie Asterisk eingehende Gespräche den Providern zuordnet.

Den Context guest habe ich in der iax.conf eingefügt, damit fremde Benutzer unseren Asterisk nicht für kostenpflichtige Telefonate missbrauchen können. Liege ich damit falsch?


Edit:

Du hast Recht: Füge ich im Context [intern] der extensions.conf die Extension s hinzu, dann landet der Anruf tatsächlich dort.
 
Zuletzt bearbeitet:
Nochmals um (hoffentlich) meine Verständnislücken zu schließen:

Wie werden eingehende Gespräche den Kontexten in der iax.conf zugeordnet?

Ich habe hier meine aktuelle iax.conf - die Zugangsdaten habe ich weitgehend anonymisiert, aber noch so belassen, dass man etwas erkennen kann:
Code:
[general]
jitterbuffer=yes
language=de
disallow=all
allow=alaw
allow=ulaw
allow=gsm

register => 000387xxxxxx:[email protected]
register => 829yyy:[email protected]
register => 829zzz:[email protected]
register => iax4xxxx:[email protected]

[guest]
type=user
context=intern
callerid="IAX Gastzugang"

[000387xxxxxx]
username=000387xxxxxx
secret=geheim
type=friend
host=proxy.dus.net
context=from-dusnet-iax
notransfer=no
qualify=no
disallow=all
allow=alaw

[iaxfwd]
type=user
context=from-iaxfwd
auth=rsa
inkeys=freeworlddialup
disallow=all
allow=ulaw

[iaxport-outbound]
type=peer
host=iax.iaxport.de
username=iax4xxxx
secret=geheim

[iaxport]
type=friend
host=iax.iaxport.de
username=iax4xxxx
secret=geheim
peercontext=iaxport
context=from-iaxport
notransfer=yes

[65]
type=friend
username=65
secret=geheim
host=dynamic
context=default
disallow=all
allow=gsm
allow=alaw

Mein Problem ist ja, dass bei dus.net der korrekte Kontext [000387xxxxxx] zur Verwendung kommt, bei Portunity aber nicht. Da landet der Anruf fälschlicherweise im Kontext [guest].

Woher weiß Asterisk (bzw. wie konfiguriere ich es), welcher Anruf zu welchem Kontext gehört?

Liegt es am Kontextnamen? In meinem Beispiel sind Benutzername der register-zeile und Kontextname bei dus.net identisch: 000387xxxxxx

Das kann aber eigentlich nicht der Grund sein, denn bei fwd ist es nicht so und es funktioniert trotzdem: Dort sind wir unter 2 Benutzernamen registriert: 829yyy und 829zzz. In beiden Fällen springt Asterisk in den korrekten Kontext [iaxfwd] und kann somit im Kontext [from-iaxfwd] der extensions.conf die beiden Extensions unterscheiden.

Asterisk springt also sowohl bei dus.net als auch bei fwd in den angegebenen Kontext [from-dusnet-iax] bzw. [from-iaxfwd]. Warum funktioniert dies bei Portunity nicht, warum wird der Kontext [from-iaxport] nicht angesprochen?

Für mich verwirrend ist, dass manchmal Benutzername und Kontextname identisch sind (bei dus.net), manchmal aber auch nicht (bei fwd und Portunity).

Ralph
 
Was passiert eigentlich, wenn Du überhaupt keinen guest Account hast?

Bei Providerkontexten sollte man übrigens nicht "type=friend" verwenden, sondern "type=peer" (ja ich weiß, daß es an vielen Stellen anders steht - aber glaub mir das einfach mal, ohne jetzt große Erklärungen dafür haben zu wollen) Und zwar "type=peer" sowohl bei eingehenden wie abgehenden Kontexten!
 
Ralph* schrieb:
Ich gestehe, dass ich noch nicht durchschaut habe, wie Asterisk eingehende Gespräche den Providern zuordnet.

Das Gespräch kommt nicht von Portunity (das wäre die IP 82.139.223.1), damit trifft deine Regel in der iax.conf für portunity nicht zu.

Den Context guest habe ich in der iax.conf eingefügt, damit fremde Benutzer unseren Asterisk nicht für kostenpflichtige Telefonate missbrauchen können. Liege ich damit falsch?


Dein Gastanruf (alles was nicht auf definierte Eingangsregeln passt) landet in dem von dir definierten Kontext.
Wenn es von dort keine Möglichkeit (auch nicht über ein include) gibt, ein abgehendes Gespräch zu führen liegst du richtig.

Edit:

Du hast Recht: Füge ich im Context [intern] der extensions.conf die Extension s hinzu, dann landet der Anruf tatsächlich dort.

Na also, jetzt läufts wenigstens. Wenn du eine Rufnummer bei denen hast, müsste das aber in den [from-iaxport] landen.
 
Ich hab mich grade mal bei Portunity angemeldet um das nachzutesten. Gebt mir mal noch ein paar Minuten Zeit


x
Blöde Frage - wie ist man denn nun eigentlich erreichbar? Mein Asterisk ist zwar registriert, aber irgendwie blicke ich in dem Konfigurationsmenü noch nicht so ganz durch.

@Ralf* bist Du in irgendwelchen Messengern erreichbar, damit wir mal testen können?
 
@kombjuder

Mein Anruf kam doch von der IP 82.139.223.1 und es hat trotzdem nicht funktioniert...

@betateilchen:

Wenn ich den Kontext [guest] aus meiner iax.conf rausnehme, dann sieht es so aus:
Code:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00003ms  SCall: 00122  DCall: 00000 [82.139.223.1:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (ulaw|g729|gsm|ilbc|alaw|g726)
   CALLING NUMBER  : 16049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   FORMAT          : 4
   CAPABILITY      : 64798
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  20:30:22

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00013ms  SCall: 00003  DCall: 00122 [82.139.223.1:4569]
   AUTHMETHODS     : 3
   CHALLENGE       : 186122787
   USERNAME        : 65

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00001ms  SCall: 00126  DCall: 00000 [82.139.223.1:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (ulaw|g729|gsm|ilbc|alaw|g726)
   CALLING NUMBER  : 16049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   FORMAT          : 4
   CAPABILITY      : 64798
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  20:30:22

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00014ms  SCall: 00005  DCall: 00126 [82.139.223.1:4569]
   AUTHMETHODS     : 3
   CHALLENGE       : 107355101
   USERNAME        : 65

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
   Timestamp: 00073ms  SCall: 00122  DCall: 00003 [82.139.223.1:4569]
   MD5 RESULT      : 342937b32aeb5060213fbfb7d6afcda3

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT 
   Timestamp: 00085ms  SCall: 00003  DCall: 00122 [82.139.223.1:4569]
   CAUSE           : No authority found
   CAUSE CODE      : 50

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
   Timestamp: 00079ms  SCall: 00126  DCall: 00005 [82.139.223.1:4569]
   MD5 RESULT      : 595f6cdd13c13d996531e9f4eee28ad6

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT 
   Timestamp: 00090ms  SCall: 00005  DCall: 00126 [82.139.223.1:4569]
   CAUSE           : No authority found
   CAUSE CODE      : 50

Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK    
   Timestamp: 00085ms  SCall: 00122  DCall: 00003 [82.139.223.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK    
   Timestamp: 00090ms  SCall: 00126  DCall: 00005 [82.139.223.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
   Timestamp: 00019ms  SCall: 00127  DCall: 00000 [82.139.223.1:4569]
   VERSION         : 2
   CALLED NUMBER   : s
   CODEC_PREFS     : (ulaw|g729|gsm|ilbc|alaw|g726)
   CALLING NUMBER  : 16049586111
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : 16049586111
   LANGUAGE        : en
   FORMAT          : 4
   CAPABILITY      : 64798
   ADSICPE         : 2
   DATE TIME       : 2007-09-04  20:30:24

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00012ms  SCall: 00006  DCall: 00127 [82.139.223.1:4569]
   AUTHMETHODS     : 3
   CHALLENGE       : 190141379
   USERNAME        : 65

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
   Timestamp: 00090ms  SCall: 00127  DCall: 00006 [82.139.223.1:4569]
   MD5 RESULT      : a2d2ab68238fd89abd1fdb902bc3178f

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT 
   Timestamp: 00081ms  SCall: 00006  DCall: 00127 [82.139.223.1:4569]
   CAUSE           : No authority found
   CAUSE CODE      : 50

Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK    
   Timestamp: 00081ms  SCall: 00127  DCall: 00006 [82.139.223.1:4569]

Als Username wird 65 übetragen (die 65 ist mein Laptop mit Zoiper als IAX-Softphone und darum auch in der iax.conf aufgeführt, hat mit Portunity aber nichts zu tun!). -> No Authority found.

Was type=peer betrifft: Ich glaube Dir (fast) alles und habe deshalb meine iax.conf entsprechend angepasst :)

Du bist toll - ich warte jetzt mal, wie Du mit Portunity klar kommst. Danke schon mal für Deine Bemühungen!!

Ralph
 
Messenger: keine. PM zwecks Telefonnummer bzw. VoIP-Daten?

Erreichbar ist man über [email protected]
 
Ich hatte Dir ja schon eine email geschrieben. Das mit den VoIP Daten hat sich zwischenzeitlich erledigt, da ich mich selbst angemeldet habe.

Du kannst mal probieren, mich über [email protected] anzurufen. Möglichst über IAX ;)
 
Mach ich... die PM von eben hat sich dann erledigt. Sorry, war zu langsam!

Ich muss nur zuerst meinen Dialplan anpassen... gib mir 5 Minuten.

Ralph
 
betateilchen,

ich bin zu blöd, Dich anzurufen... wie lautet noch gleich die Syntax für den Dial-Befehl, wenn ich eine URI direkt anwählen möchte? :)

Code:
exten => 70041,1,Dial(IAX2/[email protected])

funktioniert nicht. Wenn ich 70041 (Deine persönliche Kurzwahl...) anrufe, dauert es eine Weile, dann Busy...
 
Probier mal

Code:
exten => 70041,1,dial,IAX2/<deinuser>:<deinpasswort>@iax.iaxport.de/[email protected]
 
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.