[gelöst] IAX-Verbindungsaufbau durch Manager-Interface

TomS

Neuer User
Mitglied seit
13 Nov 2004
Beiträge
199
Punkte für Reaktionen
0
Punkte
16
Hi,

mit ist aufgefallen, dass es bei mir nicht möglich ist über das Management-Interface von Asterisk eine Verbindung über eine extension mit IAX-Channel herzustellen. Der Fehler tritt aber nur auf wenn das Management-Interface benutzt wird.

Ich habe bei mir verschiedene Amtskennziffern konfiguriert:
0 SIP über Sipgate
9 ISDN
8 SIP über Web.de
7 IAX über Sipdiscount

Diese funktionieren perfekt wenn ich über Telefone diese extensions nutze.
Die Ext. 0,9,8 funktionieren auch perfekt wenn ich über das Management-Interface von asterisk den Anruf auslöse.
Nur die IAX-Verbindung klappt dann nicht.
Hier das Log einer erfolgreichen IAX-Verbindung über Telefon (habe mich über IAX selbst angerufen, xxx ist die eigene ISDN-MSN, in der letzten Zeile kommt der Anruf also über ISDN von ext. korrekt an):

Code:
-- Executing Dial("SIP/phone24-2d6a", "IAX2/test@sipdiscount/004989xxx") in new stack
-- Called test@sipdiscount/004989xxx
-- Call accepted by 213.61.187.147 (format ulaw)
-- Format for call is ulaw
-- Accepting voice call from '' to 'xxx' on channel 0/1, span 1

Das gleiche über das Manager-Interface von Asterisk:
Code:
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'myuser' logged on from 10.1.1.1
  -- Silence suppression is disabled (option_silence_suppression=0 chan->timingfd=38)
     > Channel SIP/phone24-fdc6 was answered.
== Manager 'myuser' logged off from 10.1.1.1
-- Executing Dial("SIP/phone24-fdc6","IAX2/test@sipdiscount/004989xxx") in new stack
-- Called test@sipdiscount/004989xxx
-- Call accepted by 213.61.187.147 (format ulaw)
-- Format for call is ulaw
-- Hungup 'IAX2/sipdiscount-1'
== No one is available to answer at this time (1:0/0/0)

Die Ursache kann kein Fehler beim Provider sein, da Variante 1 fast immer geht (außer der Provider hat mal alle Leitungen belegt), Variante 2 hat dagegen noch nie eine Verbindung geschafft.
Am Dialplan kann es eigentlich auch nicht liegen, da der ja beim normalem Wählen über Telefon sauber funktioniert und laut obigem Protokoll ja auch das Dial-Kommando korrekt absetzt. Der Vollständigkeithalber trotzdem:
Code:
exten => _70Z.,1,Dial(IAX2/test@sipdiscount/0049${EXTEN:2})
exten => _70Z.,102,Playtones(busy);
exten => _70Z.,103,Busy

Das PHP-Script arbeitet mit anderen Amtskennziffern auch problemlos:
Code:
$socket = fsockopen("pbx","5038", $errno, $errstr, $timeout);
 fputs($socket, "Action: Login\r\n");
 fputs($socket, "UserName: myuser\r\n");
 fputs($socket, "Secret: xxx\r\n\r\n");
 fputs($socket, "Action: Originate\r\n");
 fputs($socket, "Channel: ".$nebenstelle."\r\n");
 fputs($socket, "Exten: ".($nummer=($amt.str_replace(" ","",$nr)))."\r\n");
 fputs($socket, "Priority: 1\r\n");
 fputs($socket, "Timeout: 30000\r\n");
 fputs($socket, "Context: default\r\n\r\n");
 $wrets=fgets($socket,128);
fclose($socket);

Hat jemand eine Idee woran es noch liegen kann?

Ciao,
Tom
 
Zuletzt bearbeitet:
Mach mal die /etc/asterisk/features.conf leer und teste dann nochmal.
 
ok, hab ich probiert: leere /etc/asterisk/features.conf erzeugt und asterisk neu gestartet

Keine Änderung.

Trotzdem Danke für den Vorschlag.
 
wild guess -

Hast Du's mal mit

notransfer=yes

in der iax.conf im Abschnitt [sipdiscount] probiert?

Gruß,
Tin
 
Hi TinTin,

danke für den Vorschlag, hat leider aber auch keine Änderung gebracht:
Code:
  -- Format for call is ulaw
  == Primary D-Channel on span 4 down for TEI 64
    -- Hungup 'IAX2/sipdiscount-3'
  == No one is available to answer at this time (1:0/0/0)

Ich vermute langsam, dass es ein Bug im * sein könnte. Die Kombination aus Manager+IAX gibt's vermutlich nicht oft.
 
Zuletzt bearbeitet:
Was sagt 'iax2 debug' wenn du einen anruf startest?
 
Tom,

ich denke es hat eher was mit sipdiscount zu tun. Ich habe keine Probleme über z.B. AstTapi (wo ein SIP channel eingestellt ist) über die manager API einen IAX Client anzurufen.

Probiere es mal testweise mit einem anderen IAX Provider.

[Edit]
Habe es mit IAX über VoipJet probiert - selbes Problem ! Komisch, dass es mit dem IAX Client (User) aber funktioniert.

Gruß,
Tin
 
Zuletzt bearbeitet:
@Maik: guter Hinweis, probier ich gleich mal... sobald der Provider wieder ne Leitung frei hat

@TinTin: habe leider grade keine Vergleichsmöglichkeit mangels anderer IAX-Provider. Aber ein Freund hat sich gestern einen IAX-Fähigen ATA ersteigert - vieleicht kann er mir den übers Internet zugänglich machen, dann kann ich mal eine andere Gegenstelle als sipdiscount über iax probieren
 
Hi Maik,

ich habe jetzt mal das debugging probiert, werde aber aus dem Resultat nicht recht schlau.
Ich habe versucht mal nur die Unterschieder der Protokolle zu qouten.
Hier ein funktionierender Anruf mittels Telefon:
Code:
   VERSION         : 2
   CALLED NUMBER   : 0049xxx
   CODEC_PREFS     : (ulaw)
   CALLING NUMBER  : 27
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : Arbeitszimmer
   LANGUAGE        : de
   USERNAME        : test
   FORMAT          : 4
   CAPABILITY      : 63492
   ADSICPE         : 2
   DATE TIME       : 2006-01-12  20:17:36
...
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: ACCEPT
   Timestamp: 00084ms  SCall: 00019  DCall: 00002 [213.61.187.147:4569]
   FORMAT          : 4

    -- Call accepted by 213.61.187.147 (format ulaw)
    -- Format for call is ulaw
Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK
   Timestamp: 00084ms  SCall: 00002  DCall: 00019 [213.61.187.147:4569]

Und hier einer über das Mgr-Interface:
Code:
   VERSION         : 2
   CALLED NUMBER   : 0049xxx
   CODEC_PREFS     : (ulaw)
   CALLING PRESNTN : 67
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   LANGUAGE        : en
   USERNAME        : test
   FORMAT          : 4
   CAPABILITY      : 63492
   ADSICPE         : 2
   DATE TIME       : 2006-01-12  20:18:38
...
Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: ACCEPT
   Timestamp: 00147ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
   FORMAT          : 4

    -- Call accepted by 213.61.187.147 (format ulaw)
    -- Format for call is ulaw
Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK
   Timestamp: 00147ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 002 Type: VOICE   Subclass: 4
   Timestamp: 00463ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 003 Type: IAX     Subclass: ACK
   Timestamp: 00463ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 002 Type: IAX     Subclass: LAGRQ
   Timestamp: 10026ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: IAX     Subclass: LAGRP
   Timestamp: 10026ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
Tx-Frame Retry[-01] -- OSeqno: 004 ISeqno: 003 Type: IAX     Subclass: ACK
   Timestamp: 10026ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX     Subclass: LAGRQ
   Timestamp: 10009ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 004 Type: IAX     Subclass: LAGRP
   Timestamp: 10009ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: IAX     Subclass: ACK
   Timestamp: 10009ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: IAX     Subclass: HANGUP
   Timestamp: 11311ms  SCall: 00017  DCall: 00001 [213.61.187.147:4569]
   CAUSE CODE      : 1

Tx-Frame Retry[-01] -- OSeqno: 005 ISeqno: 005 Type: IAX     Subclass: ACK
   Timestamp: 11311ms  SCall: 00001  DCall: 00017 [213.61.187.147:4569]
    -- Hungup 'IAX2/sipdiscount-1'
  == No one is available to answer at this time (1:0/0/0)

Soweit ich das verstehe ist der Hauptunterschied die Sprache und meine interne CID/CIDName. Und dass nach dem letzten ACK irgendwas schief geht?
 
Problem gelöst:
Für IAX-Verbindungen muß man am Manager-Interface eine CallerID angeben.

Herzlichen Dank an alle für die gute Tips und insbesondere an Maik für den ausschlaggebenden Hinweis mit dem iax2 debug!

Ciao,
Tom
 
Kostenlos!

Statistik des Forums

Themen
248,888
Beiträge
2,304,088
Mitglieder
378,569
Neuestes Mitglied
Jogi61